海为PLC与宇电AI仪表通讯程序详细介绍(图) 点击:4439 | 回复:20



海为

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:31帖 | 165回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2006年11月11日
发表于:2008-02-19 17:45:00
楼主
海为PLC与宇电AI-706M多路巡检仪通讯介绍:

一、海为PLC通讯特点:
1、内置多种通讯协议:Haiwell PLC各种型号的主机都内置Modbus RTU/ASCII协议、自由通讯协议以及海为公司的HaiwellBus高速通讯协议;
2、通讯端口可扩展:Haiwell PLC各种型号的主机均自带2个通讯口(一个为RS-232,另一个为RS-485),用通讯扩展模块可扩展至5个通讯口,每个通讯端口均可用于用于编程和联网,通讯端口相互独立,均可作为主站也可作产从站;
3、极为便利的通讯指令系统:使您无论使用何种通讯协议都只需一条通讯指令便可完成复杂的通讯功能,编程简单而程序简洁,无须再为通讯端口冲突、发送接收控制、通讯中断处理等问题烦恼,可以在程序中混合使用各种协议轻松完成您所需的各种数据交换;

二、宇电AI通讯协议介绍
AI仪表采用16进制数据格式来表示各种指令代码及数据。AI仪表软件通讯指令只有两条,一条为读指令,一条为写指令,标准读和写指令分别如下:
读: 地址代号+52H(82)+要读的参数代号+0+0+校验码
写: 地址代号+43H(67)+要写的参数代号+写入数低字节+写入数高字节+校验码
地址代号:仪表的通讯地址由参数Addr决定。仪表内部采用两个重复的128~208(16进制为80H~D0H)之间数值来表示地址代号。
AI仪表通讯协议规定,地址代号为两个相同的字节,数值为(仪表地址+80H)。例如:仪表参数Addr=10(16进制数为0AH,0A+80H=8AH),则该仪表的地址代号为:8AH  8AH
参数代号:仪表的参数用1个8位二进制数(一个字节,写为16进制数)的参数代号来表示。它在指令中表示要读/写的参数名。
校验码:校验码采用16位求和校验方式,其中读指令的校验码计算方法为:
要读参数的代号×256+82+ADDR
写指令的校验码计算方法为以下公式做16位二进制加法计算得出的余数(溢出部分不处理):
要写的参数代号×256+67+要写的参数值+ADDR
公式中ADDR为仪表地址参数值,范围是0~80(注意不要加上80H)。校验码为以上公式做二进制16位整数加法后得到的余数,余数为2个字节,其低字节在前,高字节在后。要写的参数值用16位二进制整数表示。
返回数据:无论是读还是写,仪表都返回以下10个字节数据:
测量值PV+给定值SV+输出值MV及报警状态+所读/写参数值+校验码
其中PV、SV及所读参数值均各占2个字节,代表一个16位二进制有符号补码整数,低位字节在前,高位字节在后,整数无法表示小数点,要求用户在上位机处理;MV占一个字节,按8位有符号二进制数格式,数值范围-110~+110,状态位占一个字节,校验码占2个字节,共10个字节。
返回校验码:PV+SV+(报警状态*256+MV)+参数值+ADDR按整数加法相加后得到的余数。计算校验码时,每2个8位字节组成1个16位二进制整数进行加法运算,溢出数忽略,余数作为校验码。

三、海为PLC与宇电AI-706M多路巡检仪通讯程序
因为宇电AI-706M多路巡检仪的通讯协议是宇电公司的自定义协议,所以海为PLC采用自由协议与其通讯。
根据AI-706M说明书介绍,AI-706M为6通道多路巡检仪,它自动占用6个连续的通讯地址,如设地址ADDR参数为3,则6个通道占用地址3/4/5/6/7/8,通讯格式采用9600,8,N,2。
根据宇电AI通讯协议,如果要读取6个通道的测量值,需要发送6条读命令如下(十六进制):
第1通道读命令,地址3,发送8个字节 83 83 52 01 00 00 55 01
83:地址3 + 80 = 83
83:重复地址
52:读命令标志,固定
01:表示读1号参数,也可以读其他参数,它都会返回测量值
00:固定
00:固定
55 01:校验码,十进制1 * 256 + 82 + 3 = 341,即十六进制 0155
第2通道读命令,地址4,发送8个字节 84 84 52 01 00 00 56 01
第3通道读命令,地址5,发送8个字节 85 85 52 01 00 00 57 01
第4通道读命令,地址6,发送8个字节 86 86 52 01 00 00 58 01
第5通道读命令,地址7,发送8个字节 87 87 52 01 00 00 59 01
第6通道读命令,地址8,发送8个字节 88 88 52 01 00 00 5A 01

所有命令都返回10字节的内容,头2字节既是测量值PV:
海为PLC只要使用6条COMM自由通讯指令既可读取AI-706M的6个通道测量值,程序图如下:

因为读命令的内容是固定的,所以可以将这6条读命令放在“初始寄存器表”中,“初始寄存器表”的内容会在程序下载是一起下载到PLC中并且为停电保持,如下图:

COMM自由通讯指令自带通讯协议格式定义端子Protocol,可以通过双击COMM指令,以配置方式输入,如下图:



张智勇

  • 精华:13帖
  • 求助:4帖
  • 帖子:344帖 | 4142回
  • 年度积分:0
  • 历史总积分:4044
  • 注册:2004年8月21日
发表于:2008-02-19 19:29:00
1楼
再接再厉

张智勇

  • 精华:13帖
  • 求助:4帖
  • 帖子:344帖 | 4142回
  • 年度积分:0
  • 历史总积分:4044
  • 注册:2004年8月21日
发表于:2008-02-19 19:30:00
2楼
将解与富士变频器通讯,主要是校验

张智勇

  • 精华:13帖
  • 求助:4帖
  • 帖子:344帖 | 4142回
  • 年度积分:0
  • 历史总积分:4044
  • 注册:2004年8月21日
发表于:2008-02-19 21:02:00
3楼
这个与西门子的数据块一样?运行过程中是否就不能够改变数值?

tianyi1977

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 199回
  • 年度积分:0
  • 历史总积分:287
  • 注册:2007年12月11日
发表于:2008-02-19 21:53:00
4楼

海为

  • 精华:1帖
  • 求助:0帖
  • 帖子:31帖 | 165回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2006年11月11日
发表于:2008-02-20 08:56:00
5楼
TO:张智勇
    海为PLC的“初始寄存器表”类似西门子的数据块,它在程序下载时一起下载到PLC中,它是停电保持的与程序一样无须电池不会丢失,“初始寄存器表”中的值可以在程序中通过指令运算改变或通过人机界面修改,在上载时会上载最新的值。
    这在初始一些参数时非常好用,不需要用MOV指令去初始化减少了程序量。
    海为以后将逐步讲解与其他设备的通讯程序。

liugang.org

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 305回
  • 年度积分:0
  • 历史总积分:511
  • 注册:2003年5月24日
发表于:2008-02-20 13:20:00
6楼
如果读到的数据多少无法确定怎么办,最大是255字节。还要做校验,校验的字节数要根据读过来的数据来确定。这样的协议要实现起来是不是很麻烦?

海为

  • 精华:1帖
  • 求助:0帖
  • 帖子:31帖 | 165回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2006年11月11日
发表于:2008-02-20 14:00:00
7楼
TO:liugang.org
    如果读到的数据多少无法确定,例如某设备协议规定正确时返回20个字节,错误时返回4个字节,只要将返回字节数(Rn端子)设为最大返回的字节数即20,就可以正确接收,这2笔数据接收的区别是当错误返回时(4个字节)OUT输出端不会为ON。当正确返回时(20个字节)OUT输出端为ON。
    如果要对返回的数据进行校验,程序的复杂程度依协议的复杂程度而不同,如有的秤重计量设备的通讯协议非常复杂,要解析出正确的数据或计算校验码确实有一定难度。

ldc68

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2008年4月08日
发表于:2008-04-12 13:45:45
8楼

不错,学习和使用中。

168888

  • 精华:1帖
  • 求助:0帖
  • 帖子:13帖 | 2103回
  • 年度积分:0
  • 历史总积分:4601
  • 注册:2005年3月23日
发表于:2008-04-12 15:00:55
9楼
不错,学习和使用中。

DEWAYTANG

  • 精华:1帖
  • 求助:0帖
  • 帖子:10帖 | 136回
  • 年度积分:0
  • 历史总积分:178
  • 注册:2004年11月16日
发表于:2008-04-14 23:00:32
10楼
国产的产品结合,不错!顶一下,希望多举这样的例子!

想念国货

  • 精华:3帖
  • 求助:0帖
  • 帖子:17帖 | 1367回
  • 年度积分:139
  • 历史总积分:44307
  • 注册:2005年3月27日
发表于:2008-04-14 23:28:27
11楼
和其他品牌的触摸屏的连接怎样?

海为

  • 精华:1帖
  • 求助:0帖
  • 帖子:31帖 | 165回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2006年11月11日
发表于:2008-04-15 08:10:27
12楼
海为PLC采用标准Modbus协议(也支持自由协议通讯及Haiwellbus协议),可以与任何支持Modbus协议或MODICOM PLC的文本/触摸屏/组态软件通讯

chinaplc

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 322回
  • 年度积分:0
  • 历史总积分:1101
  • 注册:2000年12月01日
发表于:2008-04-15 08:14:10
13楼

Haiwell PLC内置标准Modbus协议,所以只要支持Modbus的屏均可以与Haiwell PLC联接,而市面上的屏基本支持Modbus协议。

好运北京

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 99回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2008-04-28 02:05:27
14楼

恩 看起来很舒服 多发些帖子

mingxiaozheng

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2009年6月07日
发表于:2009-06-30 09:40:54
15楼
谢谢楼主,这个帖子是最好的!!!

kennysino

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 111回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2012-07-21 23:34:34
16楼

非常详尽的例程讲解,十分感 谢。

焦荔

  • 精华:0帖
  • 求助:4帖
  • 帖子:18帖 | 611回
  • 年度积分:0
  • 历史总积分:3321
  • 注册:2006年11月26日
发表于:2012-07-22 00:50:19
17楼
海为PLC没有听说过呀,学好西门子就好了!

工控小周

  • 精华:0帖
  • 求助:3帖
  • 帖子:45帖 | 502回
  • 年度积分:3
  • 历史总积分:2254
  • 注册:2011年10月28日
发表于:2012-07-22 08:47:48
18楼
我问了20个工控群,好像真没几个听说海味PLC的,看来还没成长起来

yanxiaojun8

  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 50回
  • 年度积分:21
  • 历史总积分:251
  • 注册:2011年2月21日
发表于:2018-07-06 23:49:35
19楼

谢谢楼主的分享

2015许

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 450回
  • 年度积分:135
  • 历史总积分:2011
  • 注册:2016年1月14日
发表于:2020-11-30 10:52:46
20楼

"工控小周" 的回复,发表在18楼
        对内容: 【我问了20个工控群,好像真没几个听说海味PLC的,看来还没成长起来...】进行回复:

        -----------------------------------------------------------------

是海为




热门招聘
相关主题

官方公众号

智造工程师