引言:厦门宇电公司生产的AI系列仪表具有良好的通讯功能,可以构成以 AIBUS通讯协议为基础的现场总线。厂方提供的AIDCS应用软件,可运行在中文WINDOWS 98/ME/XP等操作系统下,能实现对1~200台AI系列各种型号仪表的集中监控和管理。在大规模应用的场合下,以监测、变送、通讯仪表和上位计算机 为主构成的集散控制系统(DCS)无疑是一个较好的控制方案,本文试图从程序设计方面探讨AI仪表与常见的工业PLC控制系统的结合使用,这种多种通讯协 议结合的应用具有相当的广泛性和代表性。
工业PLC选用LG公司的MK-120S系列DR-30U,属于中小型PLC,CPU处理速度0.1US/步,用户程序容量7k步。它具备 RS232和RS485两个通讯接口。一般场合应用,RS232可连接一台人机界面,用以集中监控智能表,RS485远程连接多台AI-518智能表;复 杂场合应用时,RS232可通过兼容EIA/TIA的标准串行接口RS232<=>485转换器连接多台AI-518智能表,RS485用来接兼容相同 RS485协议的人机界面和多台变频器。这种灵活多变的控制方案具有性价比良好的优点,能够以***少的硬件投资取得***好的控制特性,当然这是与宇电表具备人 工智能调节、通讯传输可靠的优点分不开的。
程序设计以14台AI-518智能表为例,对应第1台智能表,在AIBUS中的地址参数为1,在人机界面和PLC中定义的变量值为:测量值 DATA1,给定值DATA2,报警变量PARA1,对应第2台智能表,它在AIBUS中的地址为2,其变量值为:测量值DATA3,给定值DATA4, 报警变量PARA2...,以下如此类推,其中DATA1-28和PARA1-14均为PLC的数据寄存器。由于宇电的AIBUS通讯协议使用方便,且以 RS485为基础的硬件通讯兼容性好,本文在PLC程序中将与智能表通讯及显示的参数变量都给出定义方法,很容易把它推广应用到其它厂家的PLC上。
1、程序的设计流程叙述如下("//"后为程序段备注):2、智能表的“给定值DATAX”写条件编程方法
1号表的旧给定值保存在“DOLD1” 中,当要在人机界面上进行1号表的写“给定值DATA1”操作时,由于改变的新“给定值DATA1”与旧值“DOLD1”不同, 将此赋值给1号表写入标志M1(M1为PLC的辅助继电器),再将“给定值DATA1”传送到旧给定值“DOLD1”中去,同时将1号表的地址写指针P赋 为1,并将“给定值DATA1”传送到14台表的公共写入值“DWRITE”中;对应地址参数不同的智能表应以此类推。
3、智能表报警信息的编程方法
由于接收帧的第3字的高字节为报警信息,所以应将第3字的高低字 节倒置,得到报警的8位字节“HEX-ALARM”。按照AIBUS的标准,这8位字节的0-5位置1状态分别代表上限、下限、正偏差、负偏差和超量程报 警,将“HEX-ALARM”与“HEX1F”按位相与,其结果赋值给“DD-ALARM”。在智能表的正常状态,“DD-ALARM”的值均为0;在报 警状态下,其值必不为零。将“DD-ALARM”是否为零的状态赋值给“DALARM”,以显示对应智能表的报警状态。按照这种思路,稍稍修改程序,就可 以在人机界面上集中显示多台智能表是否发生上限、下限、正偏差、负偏差和超量程报警,从而让我们更好地了解控制现场的情况。
4、智能表读/写子程序的设计流程
由于仅仅要读测量值/写给定值,按AIBUS通讯协议的要求,PLC对仪表的参数代号00H(给定值)进行加法操作就可以。因此智能表读/写子程序的设计流程如下:
1、地址循环变量P+80->P1; //P1为PLC的数据寄存器
2、P1*H100->P2;//P2为PLC的数据寄存器
3、P1+P2->PP; //PP为智能表在AIBUS中的协议地址,定义在发送帧中第1字
4、M-write条件成立时:
(1)传送HEX43到发送帧的第2字;//HEX43为写智能表标志
(2)传送“DWRITE”到发送帧的第3字;
(3)“DWRITE”+HEX43+地址循环变量P,其结果传送到发送帧的第4字;//进行写字节校验
5、M-write条件不成立时:
(1)传送HEX52到发送帧的第2字;//HEX52为读智能表标志
(2)传送HEX00到发送帧的第3字;
(3)HEX43+地址循环变量P,其结果传送到发送帧的第4字;//进行读字节校验