刚买了个传感器。。。有那个高手指点下三菱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