c002c014
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看c002c014的 主题 / 回贴
楼主  发表于: 2010-11-18 21:41
刚买了个传感器。。。有那个高手指点下三菱PLC怎样和它通讯读取压力?
HM29 数字压力传感器通讯协议
该协议按照标准的主从格式设计,主机发送给从机一条含
有从机地址的指令,从机得到正确的地址验证后返回信息。(无
奇偶校验、8 位数据、1 位停止位)
读取数据
$ H X1 E X2 L C D M
$ :开始字符;
X1: 从机地址的十位数;
X2: 从机地址的个位数;
HELCDM :为容错符号,为大写。
如需要读取01号传感器的数据,则发送:$ H 0 E 1LCDM
如需要读取12号传感器的数据,则发送:$ H1 E 2LCDM
二、从机返回数据:(通讯使用ASCII码)
共18 位
{ UNIT D5 D4 D3 D2 D1 DP }(压力)
[ UNIT D5 D4 D3 D2 D1 DP ] (温度)
{ : 返回数据的启示符;
UNIT:从机的单位:
0-KPa; 1-MPa; 2-m; 3-Pa; 4-Kg; 5-bar; 6-°C;
D5: 返回数据的万位;(数据类型为有符号整形)
D4: 返回数据的千位;
D3: 返回数据的百位;
D2: 返回数据的十位;
D1: 返回数据的个位;
DP : 小数点位置:
0 代表没有小数点;1 代表有1 位小数点;
2 代表有2 位小数点;3 代表有3 位小数点;
(出厂量程设置的时候确定的该参数)
} :返回数据的结束符;
注意:D1~D5 的组合问题在从机中原数为 int(有符号整形);
从机程序中如下处理:
D5= 原数/10000+0x30; //分解并组成ASCII码
D4= 原数/1000%10+0x30;
D3= 原数/100%10+0x30;
D2= 原数/10%10+0x30;
D1= 原数%10+0x30;
“{ }”内数据为压力,“ [ ] ”内数据为温度值,通过单位也可分别。
例如:返回{5120003} 代表:12.000bar
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5212 个
工控威望: 7436 点
下载积分: 158993 分
在线时间: 3172(小时)
注册时间: 2007-11-21
最后登录: 2024-12-22
查看sjm213的 主题 / 回贴
1楼  发表于: 2010-11-19 09:37
使用485BD配合RS指令。
编程之前建议使用串口调试助手搞清楚需要发送的字符以及返回的字符,然后在PLC照着这些字符发送和接收。
c1364441
级别: 略有小成
精华主题: 0
发帖数量: 193 个
工控威望: 326 点
下载积分: 13233 分
在线时间: 79(小时)
注册时间: 2011-03-17
最后登录: 2018-08-02
查看c1364441的 主题 / 回贴
2楼  发表于: 2011-05-13 18:05
学习中。