奋斗2017 发表于 2017-3-7 15:33
杨老师我这几个指示灯在触摸屏这么做?你能详细说明下吗?
你可以使用指令宏去做,从你这个通信来讲,走的是modbus RTU 的通信,从你的说明书来看,运行命令的地址可以是十六进制数的3001或是2001都可以,那么就以2001为例 把这个地址转换MODBSU寄存器地址后,对应的是8194,即把十六进制数的2001转换成十进制数后加1,类型选择6X的类型,对应MODBUS功能吗的03和06功能码。
按钮可以使用多状态开关去做,指示灯,可以使用宏指令去做,宏指令选择周期触发,100ms触发一次,三个指示灯分别用触摸屏内部地址LB0,LB1,LB2控制,宏指令程序如下所示:
macro_command main()
int e
bool a,a1,a2
GetData (e,"MODBUS RTU",6x,8194,1)
if e==1 then
a=1
SetData(a,"Local HMI",LB,0,1)
else
a=0
SetData(a,"Local HMI",LB,0,1)
end if
if e==2 then
a1=1
SetData(a1,"Local HMI",LB,1,1)
else
a1=0
SetData(a1,"Local HMI",LB,1,1)
end if
if e==3 then
a2=1
SetData(a2,"Local HMI",LB,2,1)
else
a2=0
SetData(a2,"Local HMI",LB,2,1)
end if
end macro_command
|