工控编程吧
标题: 我有一个威纶通触摸屏,想让屏和PLC唯一匹配,用宏程序怎么实现 [打印本页]
作者: qq263946146 时间: 2019-12-1 20:49
标题: 我有一个威纶通触摸屏,想让屏和PLC唯一匹配,用宏程序怎么实现
PLC是CJ2系列的,我在其中的D37放置一个数字,然后在屏的内部寄存器放置一个数值,如果这两个数值不匹配,就对PLC的输出进行禁止,怎么写呢?
回答:
这个问题应该主算是问题吧,归根应该是你自己对威纶通的触摸屏宏指令不熟悉。
这样的话,建议认真写下宏指令的使用,很少内容,很快就上手的。
可以参考我录制的视频教程。
[weilun]1[/weilun]
这里做一个回答,以触你燃眉之急。
这里我们可以假设你在PLC的D37存有数值250。
再假设触摸屏读取了D37数值,并与触摸屏内RW0做对比。
不一样则设置PLC的w0.0为ON,一样则设置为OFF.
这样PLC程序里就可以根据w0.0将全部输出点禁止输出。
LD W0.0,MOV K0 DY0.
由于PLC程序简单,欧姆龙PLC编程软件我就暂时不安装演示了。
这里我们看下问题主要关心的部分,威纶触摸屏编程软件里如何编写威纶代码。
威纶宏代码如下:
macro_command main()
bool b = true
//获取PLC与触摸屏两寄存器内数值并对比。
short nPLCValue=0,nHMIValue=0
GetData(nPLCValue, "OMRON CJ/CS/CP", D, 37, 1)
GetData(nHMIValue, "Local HMI", RW, 0, 1)
//根据对比结果设置PLC的W0.0位寄存器。
if(nHMIValue<>nPLCValue) then
b = true
SetData(b, "OMRON CJ/CS/CP", W_Bit, 0, 1)
else
b = false
SetData(b, "OMRON CJ/CS/CP", W_Bit, 0, 1)
end if
//让宏代码仅执行一次。
bool b = true
SetData(bON, "Local HMI", LB, 0, 1)
end macro_command
宏编辑界面里设置了宏执行条件,LB0为ON时禁止执行。
这样可以让宏仅有效执行一次。
界面如下:
(, 下载次数: 2)