第一步:设置S7-200的RS485的通讯波特率19.2kbps,通讯格式(8,1,E);
第二步:PLC向WCS发送请求码:
A0A1为0,表示读码器地址为0,请求码为#80(十六进制);
A0A1为1,表示读码器地址为1,请求码为#81(十六进制);
第三步:WCS接受到请求码后,会自动向PLC反馈5个byte的相应码:
2)Byte2/Byte3/Byte4为位置数据信息
位置数据 == (Byte2)X(#80)X(#80) + (Byte3)X(#80) + (Byte4)
X 为乘法, + 为加法, #80 为十六进制数
通过如上计算公式,直接可以计算出位置数据(十六进制数)
3)Byte5为Parity效验字节 可以通过奇偶效验WXOR_B指令,把Byte1/2/3/4作奇偶效验,得出效验值与Byte5进行对比,确认通讯是否正常.
S7-200的端口处于自由端口模式,用户程序通过使用接收中断、发送中断、发送指令和接收指令来控制通讯口的操作.
-
- 3.1. S7-200通信端口中断事件号
-
- • 当S7-200的端口0发送完成后,产生事件号9;(端口1为事件号26)
- • 当S7-200的端口0接收完成后,产生事件号23;(端口1为事件号24)
-
- 3.2. 编程步骤
-
- 3.2.1. 先将需发送的数据和上述各通信参数写入相应寄存器;
- 3.2.2. 用中断连接指令ATCH连接中断程序和中断事件;
- 3.2.3. 在发送完成(产生中断事件9)连接到中断程序INT_1,在中断程序INT_1中用通信接收指令RCV接收数据;
- 3.2.4. 在接收完成(产生中断事件23)连接的中断程序INT_0,在中断程序INT_0中用通信发送指令XMT再次发送消息(WCS请求指令);
-
- 3.3. 范例程序 (Siemens S7 200)
- 3.3.1. 主程序
-
- 范例程序运行条件:
- WCS的物理地址为0;
- VB1:发送数据字节存储寄存器;
- VB30:接收数据字节存储寄存器;