工控编程吧

标题: WINCC怎么触发一个外部变量 [打印本页]

作者: baikhgmv    时间: 2016-9-10 17:29
标题: WINCC怎么触发一个外部变量
WINCC怎么触发一个外部变量-WINCC 通过TCP/IP链接两台S7-300PLC   当CP1的实数MD100大于 CP2的实数MD200时 触发一个CPU2的外部变量M300.0,这个怎么做啊,求指教。
追加: MD100大于MD200   延时5S 触发M300.0


----------用脚本啊,用个定时触发的脚本500ms执行一次脚本然后检测到就输出,如果这个只是一个提示报警简单的可以这样做,但是这个报警比较重要还是建议通讯的方式,既然都是tcpip那么通讯还是很容易的。




--------通讯搞好了 也成功了  就是想用WINCC在做一次


-脚本做计时


wincc中定义外部变量mmd100,mmd200,mm3001,mm3000分明链接cp1的md100,cp2的md200,cp2的m300.1和cp2的m300.0。

方法1:完全在上位机中脚本实现:需要再定义一个wincc内部变量count:

wincc vbs全局脚本:周期1s

dim mytag(4)

mytag(0)=hmiruntime.tags("mm100").read

mytag(1)=hmiruntime.tags("mm200").read

mytag(2)=hmiruntime.tags("mm3000").read

mytag(3)=hmiruntime.tags("count").read

if mytag(0)>mytag(1) then

mytag(3)=mytag(3)+1

else mytag(3)=0

end if

if mytag(3)>=5 then

hmiruntime.tags("mm3000").write 1

end if


方法2:wincc中比较然后置位外部变量mm3001,plc中用m300.1触发延时开定时器。

wincc vbs全局脚本:周期1s

dim mytag(2)

mytag(0)=hmiruntime.tags("mm100").read

mytag(1)=hmiruntime.tags("mm200").read

if mytag(0)>mytag(1) then

hmiruntime.tags("mm3001").write 1

end if


-----------必须用VB编辑吗  有没有其它的方法  或者C脚本编辑的


------可以呀,wincc支持vbs和c两种编程语言,你习惯哪种就用哪种。




----------wincc定义变量mm100链接plc1地址md100;定义mm200链接plc2地址md200,定义m3000链接plc2地址m300.0

全局c脚本:

double mytag,mytag1

mytag=GetTagFloat("mm100");

mytag1=GetTagFloat("mm200");

if (mytag>mytag1)

SetTagBit("m3000",1);














欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4