PLC西门子通讯协议、以太网通讯协议、串口通讯协议、MODBUS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PLC西门子通讯协议、以太网通讯协议、串口通讯协议、MODBUS相关的知识,希望对你有一定的参考价值。

现在想接触下自动控制系统的组网。
网上百度好多种 “西门子通讯协议、三菱通讯协议、以太网通讯协议、串口通讯协议、MODBUS”,大概了解了它们意思\之间的关系下不知道对不对,哪位老师给梳理下这些协议关系啊!!!
是不是还要学习VB啊

首先给你说下工业中常见的通讯方式:1、RS232通讯,又称串口通讯(比较常用,比较老,速度比较慢传输距离短一般不建议大于10米,通讯速度最高也就1.2M/S但抗干扰就不好了)2、RS485通讯(速度慢,但是距离远),3、RS422(和485差不多,不过我接触的用的少)4、以太网通讯(速度快可以到100M/S,还没有距离限制(因为有网络接力))5、USB(这个东东在工业中少,毕竟抗干扰不行,不过医疗和家用就比较多了)

MODBUS实际是一个公共协议,一般是用在串口通信上的,成品的PLC、屏,这些器件90%以上的都支持MODBUS。不过我说了他基本就是串口的一种

而西门子,三菱,甚至松下,欧姆龙。。。。这些都只是说PLC的通讯,只是每家有每家的格式,按照这个协议(就是个格式)来就能读取和写入数据,就是通讯了。
参考技术A 首先分清楚物理接口方式:网口和串口(232或485以及不常用的422),对应的相同物理接口可以进行连接:232只能短距离一对一连接,485可以1200m长度范围内并联(跨接)连接并注意终端电阻,网络必须通过交换机进行连接;
其次所有的协议都是指为了通信而制定的一些规则,各个协议不同;
第三各种协议解释:西门子通信协议看对于啥设备而言,对于PLC的串口有PPI、profibus、modbus、自由串口协议,其他PLC依然是这样。
跟VB不是没关系,只有要做上位机跟PLC通信可能用到,但都划归到上位机的工作,如果只在PLC上说就没多大关系。
不知能否理解

三菱FX PLC编程口通讯协议详解

因工程需要,需要了解三菱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,如下将02 30 31 30 31 34 30 32 03 35 42的42改为41后,其只会返回15,即PLC回复:无法了解……

    技术分享图片

 

以上是关于PLC西门子通讯协议、以太网通讯协议、串口通讯协议、MODBUS的主要内容,如果未能解决你的问题,请参考以下文章

西门子以太网(S7协议)通讯

西门子PLC中,经常用的到PPI、MPI、DP、以太网、RS485、RS232、串口、MODBUS等通讯,具体都用啥区别?

西门子PLC和GE的PLC如何走以太网通讯?

关于西门子PLC S7200 SMART串口通讯的问题

西门子PLC怎么和欧姆龙PLC通信?

西门子PLC有几种通讯方式