S7-200 以其较低的成本和丰富的功能在各种控制系统中得到了广泛的应用,尤其是S7-200的自由口通讯功能,为各种仪表可靠地接入PLC系统提供了方便。S7-200 CPU 一般带一到两个RS485口,与具备RS485通讯功能的仪表联网非常方便。但许多仪表只有RS232口,要把其接入PLC,则必须加RS232到RS485的转换器,如果多台仪表需要接入同一个RS485口,则必须通过带地址选通功能的RS232/RS485的转换器,以轮询方式与每一台仪表通讯,最终实现联网数据传送,对于数据传送量不大的场合,不失为一种经济、实用的解决方案。
本例为S7-200借助艾林科P580A 带地址选通功能的RS232/RS485的转换器,实现S7-200 PLC 与多台托利多PANTHER称重仪表通讯功能。 程序使用S7-200 通讯口1通过1-8 路艾林科带地址的RS232/RS485 转换器连接1-8 路PANTHER仪表,将各路重量数据采集到PLC,按顺序存储在VB存储器中。在主程序中循环调用通讯程序即可完成各路仪表数据的采集,采集周期不超过500MS,程序能够自动判断各路转换器和称重仪表工作是否正常,某一路或某几路出现故障,不影响其它路通讯。程序组成及调用方法如下:
调用时要求将要存储各路重量的VB存储器的起始地址传递给通讯主程序输入参数DATABUF,建议首地址设为VB1900,输入数据格式为&VB1900,也可以设定为其它地址,但应避免与其它程序数据冲突,通讯程序运行时只能读此数据区,不能写,否则会造成通讯程序错误。每路重量数据占8个字节,前7个字节为重量数据的ASCII码,包括小数点,最后一个字节为标志字节,‘G’ 表示重量数据为毛重,‘N’ 表示重量数据为净重,‘E’ 表示通讯超时或通讯错误。本程序最多可带8 路,调用时应将所需路数传递到输入参数CHENALNUM,数据格式可为十六进制或无符号数。
PANTHER仪表通讯口应设为:波特率9600,7位数据位,1位停止位,偶校验,发送首字符和校验和,命令方式发送数据。另外,应将仪表的动态侦测功能设为禁止状态。
艾林科带地址的RS232/RS485 转换器应设为:波特率9600,地址分别设为1-N,地址应连续。
本程序运行时还需要占用48个连续的VB存储单元作为数据暂存区,在把程序下载到PLC之前应设定此VB数据区的首地址,方法是在左侧导航栏程序块分支中找到‘库’显示项,鼠标在‘库’显示项上右击,选择库存储区选项,设定一个起始地址即可,建议此地址设为VB2000。注意此暂存区不要与其它数据区重叠,其他程序也不能读写此数据区,否则会造成通讯程序错误。注意设定的重量数据存储区也不能与数据暂存区重叠。
程序占用了中断INT_127 和所有的10MS TON 定时器,其它程序不能再使用。
程序的MCOM_INIT模块为通讯初始化程序,应在程序开始调用,前面加常开接点SM0.1。
程序的MCOM_MAIN模块为通讯主程序,应在程序开始循环调用,前面加常开接点SM0.0。
程序的INT_127 模块为中断程序,由MCOM_MAIN模块调用,不需要调用程序处理。