发表于:2025/9/7 21:40:48
#0楼
有个小项目,一期用的西门子、二期被客户指定为施耐德M241了,现在分别要和一个称重仪表通信
称重显示仪定时发送数据,PLC接收
协议格式是这样的:
报文具体含义如下所示:
STX:报文开始,为STX的ASCII码,即就是16进制02,占用1个字节;
正负符号位:字符“+”对应正数、字符“-”对应负数,两个字符对应的ASCII码分别是16进制2B和2D,占用1个字节;
称重原始数据:依次为个位、十位、百位、千位、万位、十万位,字符范围为“0”~“9”,对应的ASCII码为16进制30~39,占用6个字节;
小数点位数:实际称重数据最多6个小数位,所以字符范围为“0”~“6”,对应的ASCII码为16进制30~36,占用1个字节;
异或校验:为第2个字节~第9字节数据的异或校验的ASCII码,占用2个字节;
ETX :报文结束,为ETX的ASCII码,即就是16进制03,占用1个字节。
可知数据1的符号位为-,原始数据为9152,小数位为2,所以称重实际值为-91.52;
可知数据2的符号位为+,原始数据为123456,小数位为3,所以称重实际值为+123.456。
请问PLC程序如何编写呢?请教各位大神。
称重显示仪定时发送数据,PLC接收
协议格式是这样的:
报文具体含义如下所示:
STX:报文开始,为STX的ASCII码,即就是16进制02,占用1个字节;
正负符号位:字符“+”对应正数、字符“-”对应负数,两个字符对应的ASCII码分别是16进制2B和2D,占用1个字节;
称重原始数据:依次为个位、十位、百位、千位、万位、十万位,字符范围为“0”~“9”,对应的ASCII码为16进制30~39,占用6个字节;
小数点位数:实际称重数据最多6个小数位,所以字符范围为“0”~“6”,对应的ASCII码为16进制30~36,占用1个字节;
异或校验:为第2个字节~第9字节数据的异或校验的ASCII码,占用2个字节;
ETX :报文结束,为ETX的ASCII码,即就是16进制03,占用1个字节。
可知数据1的符号位为-,原始数据为9152,小数位为2,所以称重实际值为-91.52;
可知数据2的符号位为+,原始数据为123456,小数位为3,所以称重实际值为+123.456。
请问PLC程序如何编写呢?请教各位大神。
[此贴子已经被jint于2025/9/9 9:33:44编辑过]
10分悬赏