zoukankan      html  css  js  c++  java
  • C#工控上位机系列--- 如何和三菱PLC FX3U通信

    工作中用的比较多的是三菱的PLC的 Fx5U和Fx3U,它们有多种通信协议,我们学习时先从1种入手,再扩展到其他的。三菱的说明书几百页,我们要把说明书读薄,只选其中通信协议部分看就好了。而上位机一开始只需要了解读写一个字元/位元就可以了。

    三菱FX-3U 计算机专用协议通信方式,其通讯命令字和通讯格式介绍如下:

    命令字 注释

    BR 以1点为单位,读出位元件的状态

    WR 以16点为单位,读出位元件的状态,或以1字为单位,读出字元件的值

    BW 以1点为单位,写入位元件的状态

    WW 以16点为单位,写入位元件的状态,或以1字为单位,写入值到字元件

    PC发送给PLC的通信命令格式
    
    约定说明:ENQ为请求标志,ASCII值5
    
         ACK为正确标志,ASCII值6
    
         STX为请求标志,ASCII值2
    
         EXT为请求标志,ASCII值3
    
         表格中粗体字为需要求和效验的部分;
         和效验为每一项的ASCII值的总和转换成十六进制后,取其低两位;
    
         站号、PLC号、元件数量、和效验都是以十六进制表示;
                      等待延时为0-150毫秒,以十六进制0H-FH表示,如100ms为AH
    
    

    1) 批量读出位元件—BR指令格式

    例如:要读出站号为5的PLC的X40到X44共5点的状态值,延时100毫秒,

    假设PLC中X40与X43为OFF,其余为ON,则指令数据如下:

    只要将以上代码以字符串形式串口发送到PLC,就会有正确的回应信息,如下:

    2) 批量读出字元件—WR指令格式

    例如 读站号0的PLC的D10的字元值

    3) 批量写入位元件—BW指令格式

    ...

    4) 批量写入字元件—WW指令格式

    例如 写入站号0的PLC的D10的字元值=11

    5U则是用MELSEC通讯协议(简称MC协议)通信,

    但MC协议的通讯格式有很多种:3E、3C、4E,4C帧格式, 个人感觉3C比4C好用,3C是ASCII文本格式,3E是二进制格式

  • 相关阅读:
    ffmpeg rtmp推流 视频转码
    java日志发展史 log4j slf4j log4j2 jul jcl 日志和各种桥接包的关系
    nginx stream 流转发,可以转发rtmp、mysql访问流,转发rtmp、jdbc请求
    java web http 转https 通过nginx代理访问
    linux 服务器磁盘挂载
    novnc 通过websockify代理 配置多点访问
    linux 文件服务 minio 安装部署配置
    AOP实现原理,手写aop
    java 泛型
    JAVA反射getGenericSuperclass()用法
  • 原文地址:https://www.cnblogs.com/zitjubiz/p/14127461.html
Copyright © 2011-2022 走看看