三菱FX系列PLC编程口通讯协议详解 点击:174 | 回复:1



我姓杨,却不是你的信仰

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 0回
  • 年度积分:0
  • 历史总积分:124
  • 注册:2020年11月05日
发表于:2020-11-05 11:14:13
楼主

此文参考如下网址资料:

https://wenku.baidu.com/view/cbaef61ab7360b4c2e3f6465.html

https://wenku.baidu.com/view/86a3a883cc175527072208e7.html

ASCII码表查询:http://ascii.911cha.com

传输格式:RS232C

波特率:9600bps

奇偶:even

校验:累加方式(和校验)

字符:ASCII

报文格式:16进制

 

例:

STX(起始)  命令   首地址            字节数    数据内容          ETX(结束位)   和校验

02               31     31 36 34 30     30 32     30 31 30 30       03                   32 32

 

1.STX:起始位、帧头

 

2.命令:30(读取模式)、31(写入模式)... ...

 

3.首地址:指数据读取/写入从哪个地址开始

   3.1寄存器”D”的地址算法

   address=”D”的编号(十六进制格式下)*2+1000H,将算出来的值的各位当作ASCII表中的图形,分别对应其十六进制值

注意:此方法只适用于D0-D1023

 

  3.2例:从D123开始读取4个字节数据

  报文:02h 30h 31h 30h 46h 36h 30h 34h 03h 37h 34h

  address=”D”的编号十六进制数*2+1000H,即(123)转成十六进制数(7B) *2+1000(H)=10F6(H),将10F6各位当作ASCII表    中的图形,找出其对应的十六进制 值,即:31h 30h 46h 36h

 

4.字节数:表示需要读取或者写入的字节数

注意:一位ASCII码占用一个字节,表示帧中的各个数据转换成ASCII码后占用的内存的字节数;用十六进制表示一个数值。

例:向D123开始的两个存储器中写入1234,ABCD;报文如下:

02h 31h 31h 30h 46h 36h 30h 34h 33h 34h 31h 32h 43h 44h 41h 42h 03h 34h 39h

  4.1 字节

  30h 34h代表的就是04个字节,

  4.2 数据字节数如何看

  后面的每个转换成ASCII之后都代表了十六进制的一个位,所以每一位都是4个位(bit),8个bit是一个字节。因为上面这个例子里    面的数据的每一位都是用十六进制表示的,所以总位数(bit数)=数据位数*4bit=8*4=32bit,即4个字节。

  顺序:1 0 3 2

 

5.数据内容

顺序:1 0 3 2,以4个十六进制位为单位写入/读出数据

例:

02h 31h 31h 30h 46h 36h 30h 34h 33h 34h 31h 32h 43h 44h 41h 42h 03h 34h 39h

 

数据位:  16^1  16^0  16^3  16^2    16^1  16^0  16^3  16^2

报文数据:33h   34h   31h   32h  43h   44h   41h   42h

ASCII码:  3     4     1     2        C     D     A     B

二进制: 0011  0100  0001  0010     1100  1101  1010  1011

bit位数:  4     4     4     4        4     4     4     4

总字节数:(4+4+4+4+4+4+4+4)/8=8Byte(字节)

 

6.ETX:结束位、帧尾

 

7.和校验

SUM=CMD+... ...+ETX,累加和超过两位取低两位

注意:数据以十六进制格式相加

例1:

STX  CMD  ADDRESS         BYTES     DATA             ETX   SUM

02h  31h   31h 36h 34h 34h   30h 32h   30h 32h 30h 30h   03h   32h 37h

 

SUM=31+31+36+34+34+30+32+30+32+30+30+03=227h

取低两位ASCII码:32h 37h

 

例2:

STX  CMD  ADDRESS         BYTES     DATA             ETX   SUM

02h  31h  31h 36h 34h 34h    30h 32h  30h 31h 30h 30h    03h   32h 36h

 

SUM=31+31+36+34+34+30+32+30+31+30+30+03+32=226h

取低两位ASCII码:32h 36h




楼主最近还看过



fighting2020

  • [管理员]
  • 精华:4帖
  • 求助:4帖
  • 帖子:1023帖 | 7244回
  • 年度积分:1284
  • 历史总积分:18892
  • 注册:2008年11月11日
发表于:2020-11-05 13:57:32
1楼

感谢楼主的总结分享


热门招聘
相关主题

官方公众号

智造工程师