zoukankan      html  css  js  c++  java
  • 三菱FX PLC编程口通讯协议详解

    由于博客园的稳定性问题,小子的博客会逐渐迁移备份至 360图书馆 ,若文章不能正常查看,请移步360图书馆查看。

    本文图书馆链接为:http://www.360doc.com/content/21/0402/21/17987244_970334175.shtml

    因工程需要,需要了解三菱PLC编程口通讯协议,以为后续的上位机串口通讯打下相关基础……

    毕竟首次接触此类通讯,对其原理不甚了解,导致走了不少弯路,故记下之,以免忘记。

    需要工具与资料:

    1. GXDeveloper
    2. 串口通讯助手
    3. 编程口通讯协议手册(小子只仅找到繁体版本,且为影印版;若谁有文字版的原版,请留下相关资料,以利广大工控人学习)

    能找到此文章的,软件各位应该都是备齐了,若没有,请自行查找;

    通讯协议 

    下载地址(放两个,以免失效):

    1.   http://www.ymmfa.com/read-gktid-1564754.html
    2. https://wenku.baidu.com/view/ff3415eab8f67c1cfad6b8e4.html

    通讯实战链接:https://baijiahao.baidu.com/s?id=1580866577419831498&wfr=spider&for=pc

    协议详解

    下述图文为小子理解时的一些细节。

    下述图片为通讯协议中最重要的两面截图:

     

    从上看出,所有发出的命令都为11个两位数(如:02 30 31 30 31 34 30 32 03 35 41,数与数之间有一个空格,并且这些两位数必须为16进制(H)的ASCII码(在串口调试软件中,发送与接收最好都设置为16进制状态)……

    如果要读取 D10的值,那命令如下(下图与协议中有细微区别,为方便理解):

    请求:02    规定如此,无论读取还是写入,此都为02

    命令:30    30为从PLC读取数据,31为写入数据;0的ASCII码16进制表示为30,1的ASCII码为31,见下图

    元件首地址:31 30 31 34    D10查表可得其地址的首地址为1014(行为1010,列4,1010+4=1014  16进制的加法),详见下图,1位数字对应1位ASCII码的16进制表示,1014即为31 30 31 34(1为31,0为30,4为34,注意中间的空格,在串口调试时一定不要忘记了中间的空格)

     BYTE数:30 32      即02   因在三菱PLC中数据寄存器D为两个字节的存储,所以读取时必须为2个字节,即02,0对应30,2对应32,即30  32

    结束:03    协议如此,无论读写都如此

    校验和:35 42   按照前述照片协议校验和为   30+31+30+31+34+30+32+03=15B(16进制加法),取15B后边两位即5B,5对应ASCII中对应16进制为35,B为42

    将“02 30 31 30 31 34 30 32 03 35 42”   填入发送区文本框,点击发送后,在接收区接收到  “02 33 30 37 35 03 44 32 

    02:开始符,即请求开始

    33 30 37 35:这四位为D10存储数据    前两位为数据为37  35 ,37对应的ASC码对应16进制为7,35为5,即75;后两位数据为 33  30 ,33为3,30为0,即30 (一定注意,此处的数据顺序)    33 30 37 35 转化为ASCII中16进制为7530,10进制为30000

              在PLC中通过监视,D10确实为30000

    03:命令结束符

    44 32 :校验和   33+30+37+35+03=D2   D的ASCII 16进制为44,2为32

    以上为D10读取测试详情(写与此类似,详细参考手册),其他软元件与此类似并注意以下事项:

    1. 该软元件的首地址
    2. 需要读取几个软元件值,各软元件需要几个字节存储(D为2个字节;C可能是2个,也可能是4个;T为2个  详细见手册)
    3. 校验和,不能计算错,否则只会返回错误15,如下将D10的取值02 30 31 30 31 34 30 32 03 35 42的42改为41后,其只会返回15,即PLC回复:无法了解……

        

    源码下载地址:https://www.haolizi.net/example/view_18794.html

  • 相关阅读:
    nginx 简单应用
    js判断图片是否存在
    Quartz Cron 生成工具
    c# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件
    SQL Server 将某一列的值拼接成字符串
    EF 里的 join and Group Join
    .net EF Join 关联表分页查询
    IIS 设置文件可下载
    windows 2003 无法安装 .net4.0 windows服务
    NEST 增删改查
  • 原文地址:https://www.cnblogs.com/chengcanghai/p/10132862.html
Copyright © 2011-2022 走看看