在大规模应用的场合下,以监测、变送、通信仪表和上位盘算机为主组成的集散控制系统(DCS)无疑是一个较好的控制计划。
引言:厦门3377体育公司生产的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协议的人机界面和多台变频器。这种灵活多变的控制计划具有性价比良好的优点,能够以zui少的硬件投资取得的控制特性,虽然这是与3377体育表具备人工智能调理、通讯传输可靠的优点分不开的。
程序设计详解
程序设计以14台AI-518智能表为例,对应第1台智能表,在AIBUS中的地点参数为1,在人机界面和PLC中界说的变量值为:丈量值DATA1,给定值DATA2,报警变量PARA1,对应第2台智能表,它在AIBUS中的地点为2,其变量值为:丈量值DATA3,给定值DATA4,报警变量PARA2...,以下如此类推,其中DATA1-28和PARA1-14均为PLC的数据寄存器。由于3377体育的AIBUS通讯协议使用便当,且以RS485为基础的硬件通讯兼容性好,本文在PLC程序中将与智能表通讯及显示的参数变量都给出界说要领,很容易把它推广应用到其它厂家的PLC上。
1、程序的设计流程叙述如下("//"后为程序段备注):
(1) PLC上电初始化智能表的地点循环变量P为1;//P为PLC的数据寄存器。
(2) 14台智能表的“给定值DATAX”进行写条件轮询;//X为偶数,且0(3) 对上面的14个写条件相“或”为M-write;//M-write为PLC的辅助继电器。
(4) 挪用智能表读/写子程序。
(5) 地点循环变量从1-14变革时,将DATA1-28,PARA1-14划分赋值为DDISP,DSET和DALARM;//这三个参数均为数据寄存器,是14台表的读/写/报警公共地点指针。
(6) 以100MS的时钟为周期发送读/写帧,对接收到的字节按“读/写”字节区分,进行间接地点传送,其花样类似为:MOV DREV #DDISP, MOV DREV+1 #DSET,其中“DREV”为PLC串口通讯指令界说的接收帧的第1个字(共接收到切合AIBUS标准的10个字节)中;“DREV+1”为接收帧的第2个字;接收到的第3个字“DREV+2”包括智能表的报警信息,应对其进行字/位的“与/或”变换后再进行间接地点传送。
(7) 地点循环变量+1;
(8) 地点变量增加到14时重置为1;
(9) 程序结束语句;
(10) 智能表读/写子程序。
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字;//进行读字节校验
经验总结及程序效果
在对程序调试历程中,应利用PLC的串口监测工具对与智能表的通讯情况进行监控,须要时延长读/写帧的发送时钟周期,视察每次读/写帧的字节数、读/写字节、报警及校验字节是否切合AIBUS协议的要求。
当在人机界面上修改某台智能表的给定值时,智能表的刷新速度很快,而在集中显示的人机界面上就有一准时间延迟。剖析:“写给定值” 操作在100ms内即可返回10个字节,但其中第2字代表的给定值(16进制花样)实际为上一次的赋值,需要对这台智能表再进行一次读操作时才向PLC返回刚刚写入的给定值。由于程序是凭据“写给定值”优先的原则设计,当对智能表的写设定值操作结束后,智能表按适才“写给定值”操作的协议地点继续以100ms时间间隔进行“读丈量值”操作,其轮询仍按AIBUS协议地点1—>14的序次,则在人机界面上“写给定值”操作后,刷新显示的延迟时间=(100ms+PLC程序循环时间)×14+(智能表-)PLC-)人机界面的信号传输时间),实测显示延迟时间zui大不凌驾3秒。为改善这种显示延迟情况,可以在本文上述第二段中插入1行程序,将新“给定值DATA1”直接传送到对应智能表的人机界面显示值“DATAX”(X为偶数,且0