产品列表
PROUCTS LIST
新闻动态
NEWS
厦门九游J9中心AI仪表在RS-485通信中的应用
作者:张晓林
摘要:利用松下(FPG)可编程控制器(MTRN) RS-485通信指令,实现单台控制器和与多台厦门[九游J9中心]AI仪表的串行通信控制,并能实时检测各仪表的运行状态.
关键词:可编程控制器 MTRN通信指令 RS-485通信协议 AI仪表控制
引言:工业场合中,经常要用一些仪表去控制,如温度.液位.流量等.在某些场合,需要1台控制器灵活地控制多台仪表,以达到设计控制目的.
本文利用日本松下可编程控制器(MTRN) RS-485通信指令,方便的实现与多台厦门[九游J9中心]AI仪表的串行通信.成功的实现了用单台控制器对多台仪表的灵活控制。
可编程控制器允许在一个RS-485通信接口上连接多达101台[九游J9中心]仪表,仪表大于60台时,需加一个RS-485中继器,RS-485通信口通信距离长达1KM以上。
一、厦门九游J9中心AI仪表的串口通信协议
对于AI仪表其通信方式为RS-485, (1个起始位,1个或2个停止位,8位数据,无奇偶校验)通信传输数据的波特率(1.2K 2.4K 4.8K 9.6K 19.2K 可在仪表叁数baud中设定)
二、系统的总体设计
图1为系统的总体设计方框图,这里重点突出可编程控制器与AI仪表RS-485接口部分。在工业现场,RS-485通信是应用较多的一种通信方式,图中可编程控制器通过RS-485通信接口与多个AI仪表相连接,zui多可达到101台,每台仪表被赋予各自的地址码,用以识别身份,( 地址码可在仪表叁数Addr中设定).这样可编程控制器的RS-485通信口便能通过通信线对挂在下面的所有仪表进行控制操作。
图1:系统的总体方框图 |
|
三、仪表接收和发送的通信协议如下 (1)AI仪表接收控制的通信协议
|
ADDR:为一个16位数据,占用二个字节,其数值范围16进制的80H-BFH,两个字必需相同,ADDR=仪表地址+80H 例:仪表地址为1 则ADDR=8181H
叁数代码:为一个8位数据,占用一个字节,详见_?九游J9中心通信协通信说明书?中的叁数代码表格
读写指令: 为一个8位数据,占用一个字节,读=(16进制)52H 写=(16进制)43H
要写入的叁数内容:为一个16位数据,占用二个字节.如SV值.上限报警.下限报警.Ctrl控制方式.等.
校验码: 为一个16位数据,占用二个字节. 校验码=ADDR+叁数代码*256+读写指令+要写入的叁数内容
例:仪表地址=1 要写入叁数代码00H,要写入的叁数内容SV设定值=1234 (十六进制=4D2) 则公式如下:
|
01H+(00HX256)+43H+4D2 =516H校验码
(2)AI仪表返回通信协议
无论是读或写仪表都返回以下数据
|
PV测量值:为1个16位数据,占用二个字节
SV设定值:为1个16位数据,占用二个字节
输出值MV: 为1个8位数据,占用一个字节
报警状态: 为1个8位数据,占用一个字节
所读/写叁数值: 为1个16位数据,占用二个字节
校验码: 为1个16位数据,占用二个字节 校验码计算详见?九游J9中心通信协议说明书? 。
四、AI仪表和可编程控制器接线图
[九游J9中心]AI仪表------松下FPG可编程控制器
|
五、 AI仪表和可编程控制器通信应用例子程序
例: 将叁数代码00H,(SV设定值)写入地址1仪表,和读取地址1仪表的PV测量值。
(1)仪表通信格式设定
1个起始位,1个停止位,8位数据,无奇偶校验.
设定通信传输数据的波特率baud=19.2K
设定仪表地址Addr=1
校验码自动计算
(2)可编程控制器通信格式设定 图2
注: 图2叁数比须设为和仪表一样
图2 |
|
(3)数据设定和校验码计算 图3
图3 |
|
程序中改变DT32710就等于改变了SV设定值.
(4)数据发送 图4
图4 |
|
(5)数据接收 图5
图5 |
|
通信正常状态下. 仪表面板上com灯将“亮”“灭”闪烁.
结束语:
本文利用松下可编程控制器和AI仪表进行RS-485通信,实现了单台控制器控制多台AI仪表的任务,并能实时检测各仪表的运行状态,整个系统控制灵活方便, 方案结构简单,开发成本低,周期短,既使在恶劣的工业环境下也能稳定工作。
参考文献:
(1) 松下FP系列可编程控制器手册 ARCTIF313C-2 '04.09
(2) 厦门九游J9中心AI仪表V6.0串行通信接口协议 AI仪表说明
AIBUS现场通讯总线的PLC工控设计方案
摘自:《MM现代制造》2006年第九期 作者:张磊
摘要:在大规模应用的场合下,以监测、变送、通信仪表和上位计算机为主构成的集散控制系统(DCS)无疑是一个较好的控制方案。
引言:厦门九游J9中心公司生产的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少的硬件投资取得的控制特性,当然这是与九游J9中心表具备人工智能调节、通讯传输可靠的优点分不开的。
程序设计详解
程序设计以14台AI-518智能表为例,对应第1台智能表,在AIBUS中的地址参数为1,在人机界面和PLC中定义的变量值为:测量值DATA1,给定值DATA2,报警变量PARA1,对应第2台智能表,它在AIBUS中的地址为2,其变量值为:测量值DATA3,给定值DATA4,报警变量PARA2...,以下如此类推,其中DATA1-28和PARA1-14均为PLC的数据寄存器。由于九游J9中心的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