当前位置:文档之家› 关于自由口通讯协议

关于自由口通讯协议

关于自由口通讯协议

此协议为亚控公司为实现组态王与德国西门子公司SIMATIC S7-200系列PLC之间的通讯而制定的串行通讯协议,采用主从的问答方式,上位机为主呼方,下位机为应答方。协议格式如

下,最后一字节为校验字节,校验字节为前面所有字节的按位异或值。

上位机从PLC中读数据:

上位机发送读指令:

BYTE1: PLC地址 (1~255)

BYTE2: 0x00 (读指令代码)

BYTE3: 寄存器类型(0-V, 1-Q, 2-I)

BYTE4-5: 起始偏移地址(0-9999)

BYTE6: 数据个数(1~32 n)

BYTE7: 数据类型(1,2,4 m)

BYTE8-11: 保留

BYTE12: 校验字节

PLC应答:

读成功时:

BYTE1: PLC地址 (1~255)

BYTE2: 0x00 (读指令代码)

BYTE3: 寄存器类型(0-V, 1-Q, 2-I)

BYTE4-5: 起始偏移地址(0-9999)

BYTE6: 数据个数(1~32 n)

BYTE7: 数据类型(1,2,4 m)

BYTE8-n*m+8: 数据

BYTEn*m+9: 校验字节

读失败时:

BYTE1: PLC地址 (1~255)

BYTE2: 0x80 (读指令失败代码)

BYTE3: 寄存器类型(0-V, 1-Q, 2-I)

BYTE4-5: 起始偏移地址(0-9999)

BYTE6: 数据个数(1~32 n)

BYTE7: 数据类型(1,2,4 m)

BYTE8: 0x01(校验错代码)

BYTE9-11: 保留

BYTE12: 校验字节

上位机向PLC中写入数据:

上位机发送写指令:

BYTE1: PLC地址 (1~255)

BYTE2: 0x01 (写指令代码)

BYTE3: 寄存器类型(0-V, 1-Q, 2-I)

BYTE4-5: 起始偏移地址(0-9999)

BYTE6: 数据个数(1 n)

BYTE7: 数据类型(1,2,4 m)

BYTE8-11: 写入数据

BYTE12: 校验字节

PLC应答:

写成功时:

BYTE1: PLC地址 (1~255)

BYTE2: 0x01 (写指令代码)

BYTE3: 寄存器类型(0-V, 1-Q, 2-I)

BYTE4-5: 起始偏移地址(0-9999)

BYTE6: 数据个数(1 n)

BYTE7: 数据类型(1,2,4 m)

BYTE8-11: 保留

BYTE12: 校验字节

写失败时:

BYTE1: PLC地址 (1~255)

BYTE2: 0x81 (写指令代码)

BYTE3: 寄存器类型(0-V, 1-Q, 2-I)

BYTE4-5: 起始偏移地址(0-9999)

BYTE6: 数据个数(1 n)

BYTE7: 数据类型(1,2,4 m)

BYTE8: 0x01(校验错代码)

BYTE9-11: 保留

BYTE12: 校验字节

由于采用自由口通信方式后,梯形图程序通过接收中断和发送中断以及发送指令(XMT)控制

通信口的操作。组态王提供了使用STEP 7 Micro/WIN及STEP 7-Micro/DOS编写的一段完整的

通信处理程序,供用户参考。下面将此程序所用到的寄存器资源及其所代表的含义解释如下:

VW8:存放PLC的地址

VW54:存放发送数据按字节异或校验的次数

VD40:存放接收缓冲区的首指针

VB100:接收缓冲区的首字节

VB200:发送缓冲区的首字节

VD60:发送缓冲区的首指针

VW44: 存放接收数据按字节异或校验的次数

VD46:指向接收缓冲区的指针

VD66: 指向发送缓冲区的指针

VD50:指向要读取或写入数据的指针

SMB2:特殊标志位,是自由口接收字符缓冲器。在自由口方式下收到的每个字符都放到这

里便于用户程序进行存取。

SMB30:特殊标志位,是自由口控制寄存器,存放自由口控制字节。

SMB34:时钟中断时间间隔寄存器。

注意:

用户在编制控制程序时请注意不要占用以上寄存器资源。建议用户程序使用V300以后的

寄存器。

用户需根据每台PLC的实际地址,更改VW8的值。

对于特殊标志位的使用,请参照相关编程参考手册。

相关主题