厦门宇电自动化科技有限公司

化工仪器网高级20

收藏

18.厦门宇电AI仪表在RS-485通信中的应用

时间:2012-06-18      阅读:7447

厦门宇电AI仪表在RS-485通信中的应用

作者:张晓林

    摘要:利用松下(FPG)可编程控制器(MTRN) RS-485通信指令,实现单台控制器和与多台厦门[宇电]AI仪表的串行通信控制,并能实时检测各仪表的运行状态.

关键词:可编程控制器 MTRN通信指令 RS-485通信协议 AI仪表控制 

    引言:工业场合中,经常要用一些仪表去控制,如温度.液位.流量等.在某些场合,需要1台控制器灵活地控制多台仪表,以达到设计控制目的.
    本文利用日本松下可编程控制器(MTRN) RS-485通信指令,方便的实现与多台厦门[宇电]AI仪表的串行通信.成功的实现了用单台控制器对多台仪表的灵活控制。
    可编程控制器允许在一个RS-485通信接口上连接多达101[宇电]仪表,仪表大于60台时,需加一个RS-485中继器,RS-485通信口通信距离长达1KM以上。

一、厦门宇电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      :仪表地址为ADDR=8181H
    叁数代码:为一个8位数据,占用一个字节,详见_?宇电通信协通信说明书?中的叁数代码表格
    读写指令为一个8位数据,占用一个字节,=16进制)52H =16进制)43H 
    要写入的叁数内容:为一个16位数据,占用二个字节.SV.上限报警.下限报警.Ctrl控制方式..
    校验码为一个16位数据,占用二个字节校验码=ADDR+叁数代码*256+读写指令+要写入的叁数内容
    :仪表地址=1 要写入叁数代码00H,要写入的叁数内容SV设定值=1234 (十六进制=4D2) 则公式如下

    01H+(00HX256)+43H+4D2 =516H校验码
(2)AI仪表返回通信协议
    无论是读或写仪表都返回以下数据

    PV测量值:116位数据,占用二个字节
    SV设定值:116位数据,占用二个字节
    输出值MV: 18位数据,占用一个字节
    报警状态18位数据,占用一个字节
    所读/写叁数值116位数据,占用二个字节
    校验码116位数据,占用二个字节 校验码计算详见?宇电通信协议说明书

四、AI仪表和可编程控制器接线图 

    [宇电]AI仪表------松下FPG可编程控制器

五、 AI仪表和可编程控制器通信应用例子程序 

    将叁数代码00H,(SV设定值写入地址1仪表,和读取地址1仪表的PV测量值。
(1)仪表通信格式设定
    1个起始位,1个停止位,8位数据,无奇偶校验.
    设定通信传输数据的波特率baud=19.2K 
    设定仪表地址Addr=1
    校验码自动计算 
(2)可编程控制器通信格式设定 图
2叁数比须设为和仪表一样

2

(3)数据设定和校验码计算 图

3

    程序中改变DT32710就等于改变了SV设定值.
(4)数据发送 图4

4

(5)数据接收 图5

5

    通信正常状态下仪表面板上com灯将“亮”“灭”闪烁.

结束语: 

    本文利用松下可编程控制器和AI仪表进行RS-485通信,实现了单台控制器控制多台AI仪表的任务,并能实时检测各仪表的运行状态,整个系统控制灵活方便方案结构简单,开发成本低,周期短,既使在恶劣的工业环境下也能稳定工作。

参考文献:
(1) 松下FP系列可编程控制器手册 ARCTIF313C-2 '04.09
(2) 厦门宇电AI仪表V6.0串行通信接口协议 AI仪表说明

第二节、AIBUS现场通讯总线的PLC工控设计方案

AIBUS现场通讯总线的PLC工控设计方案

摘自:《MM现代制造》2006年第九期 作者:张磊

    摘要:在大规模应用的场合下,以监测、变送、通信仪表和上位计算机为主构成的集散控制系统(DCS)无疑是一个较好的控制方案。

    引言:厦门宇电公司生产的AI系列仪表具有良好的通讯功能,可以构成以AIBUS通讯协议为基础的现场总线。厂方提供的AIDCS应用软件,可运行在中文WINDOWS 98/ME/XP等操作系统下,能实现对1~200AI系列各种型号仪表的集中监控和管理。在大规模应用的场合下,以监测、变送、通讯仪表和上位计算机为主构成的集散控制系统(DCS)无疑是一个较好的控制方案,本文试图从程序设计方面探讨AI仪表与常见的工业PLC控制系统的结合使用,这种多种通讯协议结合的应用具有相当的广泛性和代表性。

灵活多变的控制方案 

    工业PLC选用LG公司的MK-120S系列DR-30U,属于中小型PLCCPU处理速度0.1US/步,用户程序容量7k步。它具备RS232RS485两个通讯接口。一般场合应用,RS232可连接一台人机界面,用以集中监控智能表,RS485远程连接多台AI-518智能表;复杂场合应用时,RS232可通过兼容EIA/TIA的标准串行接口RS232=485转换器连接多台AI-518智能表,RS485用来接兼容相同RS485协议的人机界面和多台变频器。这种灵活多变的控制方案具有性价比良好的优点,能够以zui少的硬件投资取得的控制特性,当然这是与宇电表具备人工智能调节、通讯传输可靠的优点分不开的。

程序设计详解 

    程序设计以14AI-518智能表为例,对应第1台智能表,在AIBUS中的地址参数为1,在人机界面和PLC中定义的变量值为:测量值DATA1,给定值DATA2,报警变量PARA1,对应第2台智能表,它在AIBUS中的地址为2,其变量值为:测量值DATA3,给定值DATA4,报警变量PARA2...,以下如此类推,其中DATA1-28PARA1-14均为PLC的数据寄存器。由于宇电的AIBUS通讯协议使用方便,且以RS485为基础的硬件通讯兼容性好,本文在PLC程序中将与智能表通讯及显示的参数变量都给出定义方法,很容易把它推广应用到其它厂家的PLC上。

1、程序的设计流程叙述如下("//"后为程序段备注
1) PLC上电初始化智能表的地址循环变量P1//PPLC的数据寄存器。
2) 14台智能表的“给定值DATAX”进行写条件轮询;//X为偶数,且0
3) 对上面的14个写条件相“或”为M-write//M-writePLC的辅助继电器。
4) 调用智能表读/写子程序。
5) 地址循环变量从1-14变化时,将DATA1-28PARA1-14分别赋值为DDISP,DSETDALARM//这三个参数均为数据寄存器,是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号表写入标志M1M1PLC的辅助继电器),再将“给定值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; //P1PLC的数据寄存器
2P1*H100->P2;//P2PLC的数据寄存器
3P1+P2->PP; //PP为智能表在AIBUS中的协议地址,定义在发送帧中第1
4M-write条件成立时:
1)传送HEX43到发送帧的第2字;//HEX43为写智能表标志
2)传送“DWRITE”到发送帧的第3字;
3)“DWRITE+HEX43+地址循环变量P,其结果传送到发送帧的第4字;//进行写字节校验
5M-write条件不成立时:
1)传送HEX52到发送帧的第2字;//HEX52为读智能表标志
2)传送HEX00到发送帧的第3字;
3HEX43+地址循环变量P,其结果传送到发送帧的第4字;//进行读字节校验

经验总结及程序效果     

    在对程序调试过程中,应利用PLC的串口监测工具对与智能表的通讯情况进行监控,必要时延长读/写帧的发送时钟周期,观察每次读/写帧的字节数、读/写字节、报警及校验字节是否符合AIBUS协议的要求。
    当在人机界面上修改某台智能表的给定值时,智能表的刷新速度很快,而在集中显示的人机界面上就有一定时间延迟。分析:“写给定值” 操作在100ms内即可返回10个字节,但其中第2字代表的给定值(16进制格式)实际为上一次的赋值,需要对这台智能表再进行一次读操作时才向PLC返回方才写入的给定值。由于程序是按照“写给定值”优先的原则设计,当对智能表的写设定值操作结束后,智能表按刚才“写给定值”操作的协议地址继续以100ms时间间隔进行“读测量值”操作,其轮询仍按AIBUS协议地址1—〉14的次序,则在人机界面上“写给定值”操作后,刷新显示的延迟时间=100ms+PLC程序循环时间)×14+(智能表-PLC-)人机界面的信号传输时间),实测显示延迟时间zui大不超过3秒。为改善这种显示延迟情况,可以在本文上述第二段中插入1行程序,将新“给定值DATA1”直接传送到对应智能表的人机界面显示值“DATAX”(X为偶数,且0

上一篇: 19.Delphi与多个AI仪表串口数据采集系统的实现 下一篇: 17.AIBUS现场通讯总线的PLC工控设计方案
提示

请选择您要拨打的电话: