• 自动化项目倍加福测距仪QSM WCS RS485 与西门子S7 200通信


    1、程序流程图

    2、WCS位置数据处理流程

    第一步:设置S7-200的RS485的通讯波特率19.2kbps,通讯格式(8,1,E);

     第二步:PLC向WCS发送请求码:

              A0A1为0,表示读码器地址为0,请求码为#80(十六进制);

              A0A1为1,表示读码器地址为1,请求码为#81(十六进制);

       第三步:WCS接受到请求码后,会自动向PLC反馈5个byte的相应码:

    1. Byte1为读码器状态位: DB OUT Err 表示读码器工作是否正常.

          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进行对比,确认通讯是否正常.

    3、通信程序编写方法

    S7-200的端口处于自由端口模式,用户程序通过使用接收中断、发送中断、发送指令和接收指令来控制通讯口的操作.

    1. 3.1. S7-200通信端口中断事件号
    2. • 当S7-200的端口0发送完成后,产生事件号9;(端口1为事件号26
    3. • 当S7-200的端口0接收完成后,产生事件号23;(端口1为事件号24
    4. 3.2. 编程步骤
    5. 3.2.1. 先将需发送的数据和上述各通信参数写入相应寄存器;
    6. 3.2.2. 用中断连接指令ATCH连接中断程序和中断事件;
    7. 3.2.3. 在发送完成(产生中断事件9)连接到中断程序INT_1,在中断程序INT_1中用通信接收指令RCV接收数据;
    8. 3.2.4. 在接收完成(产生中断事件23)连接的中断程序INT_0,在中断程序INT_0中用通信发送指令XMT再次发送消息(WCS请求指令);
    1. 3.3. 范例程序 (Siemens S7 200)
    2. 3.3.1. 主程序
    3. 范例程序运行条件:
    4.  WCS的物理地址为0
    5.  VB1:发送数据字节存储寄存器;
    6.  VB30:接收数据字节存储寄存器;

     

     

     

     

  • 相关阅读:
    Linux C语言开发-D2vi编辑器使用
    数据结构——分块查找
    Java 面试需要掌握哪些内容?
    GD32 YYDS
    Addressable 预下载
    三姐妹不吸烟患肺癌,做饭人需要了解油烟的三大危害
    Airtest1.2.7新增断言API介绍
    体验Vue3的SSR框架 - Nuxt3
    Python图像处理之OpenCV模块
    如何在虚拟专用服务器上配置 Nginx Web 服务器
  • 原文地址:https://blog.csdn.net/xdpcxq/article/details/128053672