【世纪星秘笈】世纪星如何与MCGS触摸屏通讯
技术部 供稿
曾有客户提出这样的技术需求:现场有30台PLC,分别连接30台MCGS的触摸屏,现要求再连接一台工控机通过路由器走以太网连接到这30台触摸屏上能够实现集中控制,而工控机上安装的组态软件是世纪星,能否实现这样的控制?
是否能实现这样的控制,下面我们一步步做个测试。
首先要知道MCGS带有MosbusTCPIP数据转发设备,有了这个设备我们就能很容易实现客户所要求的。
打开MCGS组态软件,在设备组态中添加TCPIP设备如图1:
图1
双击设备1出现设备编辑窗口,点右侧的增加设备通道,添加一个通道并为这个通道添加变量,点击确认。之后点上图中的父设备,出现如下的窗口,并按下图设置好设备属性,如图2:
图2
这里的本地IP地址是指工控机上的IP地址,远程IP地址指的是触摸屏的IP地址。到这一步触摸屏已设置完毕,下面进入世纪星的设置步骤。
打开世纪星组态软件,首先建设备驱动,如下图3,图4:
图3
图4
点下一步完成即可。
关于初始化字的填写,可参考世纪星的驱动帮助。
特别强调一点,关于括号中的010的说明:
第一个0表示的是16位整数传送时高字节在前,低字节在后。
第二个1表示的是32位数据高字在前,低字在后。
第三个0表示使用06号功能码向设备写入单字整数数据。
接下来建变量,建变量的时候关于寄存器的说明:
寄存器使用说明
寄存器名称 寄存器格式 数据类型 读写类型 参数(##1)说明和范围
0x 0x##1 BIT 读写 (十进制)0-65535
1x 1x##1 BIT 只读 (十进制)0-65535
3x 3x##1 UINT INT BCD FLOAT LONG 只读 (十进制)0-65535
4x 4x##1 UINT BCD INT FLOAT LONG 读写 (十进制)0-65535
在MCGS中如果选择32位的数据,在世纪星中就要选择LONG类型的数据。
关于寄存器,##1表示的是通道,就是在MCGS中添加的设备同道。如下图5红色框就是通道地址。
图5
比如上图的地址,在世纪星中选择4x寄存器,然后写入4x1,数据类型选择float。
到这里可以测试下通讯是否成功,点开设备驱动管理,双击下图中红色部分那个设备驱动测试按钮,如图6所示:
图6
出现驱动设备测试窗口,输入寄存器名,然后点增加按钮,再点开始,效果如图7:
图7
上面是关于数值的通讯,如果是字符,使用这个转发设备不支持,如果说项目中只有字符,但不很复杂的情况下,可以通过以下方法来做。如字符变量很多,笔者就不建议使用世纪星与MCGS来通讯,因为这样工作量将成倍增加。
举个例子,比如该客户的项目中要求在触摸板上输入提升器型号后计算机自动生成实验程序,这个要求可以把提升器型号用整数类型的序号ID来代替,MCGS与世纪星传输这个序号,然后在世纪星上建个配方,配方名称就用这个序号ID,变量1选择提升器型号,在应用程序里可以选择在运行的时候加载配方:
ID1=StringFromIntg( ID, 10 );
RecipeLoad(InfoAppDir( )+"提升器型号.csv", ID1);
说明:ID1是字符信息变量,ID是与MCGS通讯的序号。
这样,在ID由MCGS传过来后,提升期型号自动更改。
这个例子能这么做的关键点是提升器型号,固定几种,当然也可以增加,如果说有些字符变量随机,比如这个型号用一次就变,也许以后就不再使用,这样情况不建议采用这个方法。
现在,世纪星也推出了世纪星嵌入式软件及CSTouch触摸屏产品,如果客户有以上的技术要求,可使用CSTouch触摸屏和嵌入式软件,这样做起来就会更加简单方便。