1、如何使用网线和网关通讯?
需要在触摸屏中做modbus通讯。如下图:
2、如何实现触摸屏PLC数据和内部寄存器的映射?
如果要将PLC的数据经触摸屏上传到EMCP平台,如果只是数据实时采集而不向PLC写入,那么我们可以通过触摸屏编辑软件中的“资料传送”(元件->资料传送),打开如下图;

如果需要通过平台向PLC写入数据,那么通过上面的资料传送就无法满足了,我们可以使用威纶通触摸屏的宏指令功能实现触摸屏寄存器和PLC寄存器的双向映射。(注意:如需双向映射,那么该寄存器就不要再进行上面的资料传送了),宏指令编辑可点击菜单栏中的“工具->宏指令”新建一个宏指令,编辑内容如下。

编程代码如下:
macro_command main()
int a1,a2,a3 //创建a1,a2,a3临时中间变量
GetData(a1, "Local HMI", RW, 10, 1) //将RW10值付给a1。
GetData(a2, "Siemens S7-200 PPI", VW, 1000, 1) //将PLC中的VW1000值付给a2。
GetData(a3, "Local HMI", RW, 20, 1) //RW20为中间寄存器,起到数据中间传送作用。
if a1<>a3 then //如果a1不等于a3(即RW10不等于RW20)那么执行下面两行的指令操作 。
SetData(a1, "Siemens S7-200 PPI", VW, 1000,1 ) //将a1的值(即RW10)付给VW1000
SetData(a1, "Local HMI", RW, 20, 1) //将将a1的值(即RW10)付给RW20(保存RW10的值已便于下次比较)。
else //如果RW10的值主动发送改变(手写或平台写入后)
SetData(a2, "Local HMI", RW, 10, 1) //将VW1000付给RW10
SetData(a2, "Local HMI", RW, 20, 1) //将VW1000付给RW20(保存RW10的值已便于下次比较)。
end if
GetData(a1, "Local HMI", RW, 11, 1)
GetData(a2, "Siemens S7-200 PPI", VW, 1002, 1)
GetData(a3, "Local HMI", RW, 21, 1)
if a1<>a3 then
SetData(a1, "Siemens S7-200 PPI", VW, 1002, 1)
SetData(a1, "Local HMI", RW, 21, 1)
else
SetData(a2, "Local HMI", RW, 11, 1)
SetData(a2, "Local HMI", RW, 21, 1)
end if
end macro_command