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);
|