CN112769666A - Plc站间通信方法 - Google Patents
Plc站间通信方法 Download PDFInfo
- Publication number
- CN112769666A CN112769666A CN201911003494.8A CN201911003494A CN112769666A CN 112769666 A CN112769666 A CN 112769666A CN 201911003494 A CN201911003494 A CN 201911003494A CN 112769666 A CN112769666 A CN 112769666A
- Authority
- CN
- China
- Prior art keywords
- slave
- data
- inter
- station communication
- master
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/403—Bus networks with centralised control, e.g. polling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Programmable Controllers (AREA)
- Communication Control (AREA)
Abstract
本发明提供一种PLC站间通信方法,多个PLC通过串行通信接口连接在一起,构成一个总线拓扑网络,所述多个PLC通过串行通信接口进行通信,其中一个PLC作为主机,其余PLC作为从机,所述方法包括:主机读取从机的数据时,主机发送读取数据的命令,从机接收到读取数据的命令后,将要读取的数据发送给主机;主机向从机写数据时,主机直接将数据发送给从机,从机接收到数据后不需要应答;从机之间通信时,主机先读取其中一个从机的数据,然后主机再把读取到的数据写入另外一个从机。本发明能够保证PLC之间通信的可靠性,实施方便且成本较低。
Description
技术领域
本发明涉及自动化控制技术领域,尤其涉及一种PLC站间通信方法。
背景技术
PLC(Programmable Logic Controller,可编程逻辑控制器)是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。自从PLC面世以来,以其功能强、可靠性高、使用方便、体积小等优点广泛应用于石油、化工、高铁、电力等各行各业的自动化控制系统中。PLC是可编程控制系统的核心,主要用于运行控制逻辑和执行现场I/O变量刷新操作。
PLC凭借其可编程的灵活性得到了广泛的应用。而小型PLC虽然可以控制的I/O变量数量较少,但是由于其体积小、成本低、使用简单等特点,大量在一些简单控制中实现。小型PLC运用编制程序存储器,在其内部进行储存并进行逻辑运算、顺序运算、计时计数等操作,并能通过数据的输入与输出,操纵各类机器或者生产的过程。
但由于单个PLC所包含的IO资源有限,以及受到CPU运算速度的限制,在某些场合下只有单个小型PLC无法满足工业控制现场的需要,因此使用多个小型PLC进行联合控制,多个PLC共同完成需要的工作,其中各个PLC控制不同的IO量,同时又需要与其他PLC进行少量数据信息的传输,这种不同PLC间的数据通信称为PLC站间通信,如何实现PLC站间通信是需要解决的技术问题。
发明内容
本发明提供的PLC站间通信方法,能够保证PLC之间通信的可靠性,实施方便且成本较低。
第一方面,本发明提供一种PLC站间通信方法,多个PLC通过串行通信接口连接在一起,构成一个总线拓扑网络,所述多个PLC通过串行通信接口进行通信,其中一个PLC作为主机,其余PLC作为从机,所述方法包括:
主机读取从机的数据时,主机发送读取数据的命令,从机接收到读取数据的命令后,将要读取的数据发送给主机;
主机向从机写数据时,主机直接将数据发送给从机,从机接收到数据后不需要应答;
从机之间通信时,主机先读取其中一个从机的数据,然后主机再把读取到的数据写入另外一个从机。
可选地,PLC之间进行通信所传输的通信数据帧包括起始标识符、从机地址、数据长度、数据和CRC字段。
可选地,所述从机地址字段用来标识与通信相关的从机地址,从机根据主机发出的通信数据帧中的从机地址字段判断接收到的数据是否是发给自己的,主机根据接收到的通信数据帧中的从机地址字段判断接收到的数据来自于哪个从机。
可选地,采用功能块方式实现站间通信的控制,站间通信功能块包括主机站间通信功能块和从机站间通信功能块,调用主机站间通信功能块的PLC使用站间通信主机控制逻辑,调用从机站间通信功能块的PLC使用站间通信从机控制逻辑。
可选地,只有一个PLC调用主机站间通信功能块,其他PLC调用从机站间通信功能块,且每个调用从机站间通信功能块的PLC使用不同的从机地址。
可选地,调用主机站间通信功能块时,作为主机的PLC向Saddr填写目的从机的地址,Cmd输入写操作或者读操作,Daddr填写数据的存放地址,发送给从机的数据或者接收到从机的数据都放到该地址,Len表示发送给从机数据的长度或者接收从机数据的长度,Timeout表示等待从机响应数据的最大等待时间。
可选地,主机站间通信功能块包括五个状态:空闲状态、等待超时状态、等待接收状态、成功状态和错误状态。
可选地,调用从机站间通信功能块时,从机Saddr写入属于自己的地址,RecvAddr和RecvLen填写接收数据的存放地址和长度,SendAddr和SendLen填写发送数据的存放地址和长度。
可选地,从机站间通信功能块包括五个状态:空闲状态、写数据状态、读数据状态、成功状态和错误状态。
可选地,所述串行通信接口为RS485接口。
本发明实施例提供的PLC站间通信方法,能够有效地避免RS485同时发送数据产生冲突的问题,保证了通信的可靠性;由于硬件上大部分的小型PLC都带有RS485的接口,不需要做出改动,即使没有RS485接口,增加也相对简单;而软件方面并不需要对小型PLC的主体控制逻辑进行修改,只需增加站间通信的功能块即可,需要做出的修改较小,实施方便,成本较低。
附图说明
图1为本发明实施例提供的PLC站间通信方法的系统物理连接示意图;
图2为本发明实施例提供的主机读取从机数据的过程示意图;
图3为本发明实施例提供的主机向从机写数据的过程示意图;
图4为本发明实施例提供的从机与从机之间进行数据通信的过程示意图;
图5为本发明实施例提供的通信数据帧的结构图;
图6为本发明实施例提供的站间通信功能块的示意图;
图7为本发明实施例提供的主机站间通信功能块的控制流程图;
图8为本发明实施例提供的从机站间通信功能块的控制流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种PLC站间通信方法,多个PLC通过串行通信接口连接在一起,构成一个总线拓扑网络,所述多个PLC通过串行通信接口进行通信,其中一个PLC作为主机,其余PLC作为从机,所述方法包括:
主机读取从机的数据时,主机发送读取数据的命令,从机接收到读取数据的命令后,将要读取的数据发送给主机;
主机向从机写数据时,主机直接将数据发送给从机,从机接收到数据后不需要应答;
从机之间通信时,主机先读取其中一个从机的数据,然后主机再把读取到的数据写入另外一个从机。
下面对本发明实施例PLC站间通信方法进行详细说明。
本实施例采用RS485作为数据链路,采用主从的通信机制,借助用户编写的控制逻辑,发送数据给指定的PLC,或者读取指定PLC的数据,从而实现基于RS485的PLC站间通信方案。下面从物理连接、通信机制、通信协议和控制逻辑四个方面进行介绍。
如图1所示,是实现本发明实施例PLC站间通信方法的物理连接示意图。本实施例采用两线制RS485进行接线,将各个需要进行互相通信的PLC用RS485线缆连接在一起,构成一个总线拓扑的网络,多个PLC通过RS485进行通信。由于RS485的电气特性,在同一链路中最多挂接32个节点,这对于小型PLC的站间通信已经足够了。在使用RS485进行通信时,对于特定的传输线路,从RS485接口到负载传输所允许的最大电缆长度与信号传输的波特率成反比,因此用户在配置RS485时要根据连接距离选择合适的波特率以保证通信的可靠性。
RS485使用一对差分信号进行数据通信,是半双工的通信方案,因此若在一个RS485总线构成的网络中有两个节点同时发送数据,则会出现干扰,导致数据发送失败。为了避免此问题,本实施例提供一种站间通信机制,该机制采用了一主多从的通信方式,即每次站间通信都是由主机发起的,从机接收主机的数据并进行响应。如图2所示,主机读取从机的数据时,主机发送读取数据的命令,从机接收到读取数据的命令后,将要读取的数据发送给主机。如图3所示,主机向从机写数据时,主机直接将数据发送给从机,从机接收到数据后不需要应答。从机与从机之间无法直接进行数据通信,从机与从机的通信需要通过主机进行中转,如图4所示,从机2要读取从机1的数据,则需要主机先读取从机1的数据,然后主机再把读取到的数据写入从机2。
本发明实施例PLC站间通信方法所传输的通信数据帧的结构如图5所示,由起始标识符、从机地址、数据长度、数据和CRC五个字段组成,其中,
起始标识符字段是用来判断数据帧的开始的,通信数据帧起始位置可以通过两种方式确定,一种是接受到的首个字节便被判断为起始位置,另一种是通过判断固定的开始标识符。本实施例采用第二种方式,是为了增加通信的可靠性,减少数据链路不稳定带来的干扰。
从机地址字段是用来标识与此次通信相关的从机地址,本实施例中通信都是由主机发起的,由于RS485的特性,主机发送的数据所有的从机都会收到,因此从机需要区分收到的数据是否是发给自己的,从而需要一个从机地址用于判断数据的目的地址;同理,从机应答时,为了主机能够判断接收到数据的源地址,从机需要将从机地址填入该字段。
数据长度是为了标识数据帧中数据的长度,该字段长度只有一个字节,因此一次通信最多能有255个数据。
CRC字段是对整个通信数据帧进行校验,以确保数据的正确性,本实施例中使用两字节的CRC进行校验。
为了方便用户的使用,采用功能块方式实现站间通信的控制。如图6所示,站间通信功能块包括主机站间通信功能块和从机站间通信功能块,调用主机站间通信功能块的PLC使用站间通信主机控制逻辑,调用从机站间通信功能块的PLC使用站间通信从机控制逻辑,因此用户可以通过调用功能块实现一主多从的通信方式。
在一个RS485网络中,只有一个PLC调用主机站间通信功能块,其他PLC调用从机站间通信功能块,且每个调用从机站间通信功能块的PLC都需要使用不同的从机地址。
调用主机站间通信功能块时,用户需要给Saddr填写目的从机的地址,Cmd输入写操作或者读操作,Daddr填写数据的存放地址,发送给从机的数据或者接收到从机的数据都放到该地址,Len表示发送给从机数据的长度或者接收从机数据的长度,Timeout表示等待从机响应数据的最大等待时间。Req从0变1,则发起一次站间通信。Done引脚由0变为1则表示一次通信的完成,用户可以进行其他的处理。当Error由0变成1,则表示发生了通信错误,错误原因可以在Status上查看。
调用从机站间通信功能块时,用户需要给Saddr写入属于自己的地址,RecvAddr和RecvLen填写接收数据的存放地址和长度,SendAddr和SendLen填写发送数据的存放地址和长度。当EN为1时,功能块处于工作状态,否则不响应主机的请求。Done引脚由0变为1,则表示一次通信的完成,用户可以通过查看此时的Status值确定是读成功还是写成功。当Error由0变成1,则表示发生了通信错误,错误原因可以在Status上查看。
如图7所示是主机站间通信功能块的控制流程图。其中A图是主机站间通信功能块状态机的处理流程图,主要有五个状态,由状态机控制其状态的转化。主机站间通信功能块初始进入到空闲状态,若未检测到Req的上升沿,则维持当前状态不变;当检查到Req上升沿,将首先检查各参数的合法性,若存在不合法的参数,则进入到错误状态;若各参数合法,则检查Cmd是读请求还是写请求,若是写请求,则按照参数组通信数据帧,发送给从机并进入到等待超时状态,该状态的目的是给从机一定的处理数据的时间,等超时到后进入成功状态;若是读请求,则主机按照参数组数据帧发送给从机,然后进入到等待接收状态,若在规定时间内收到数据,则进入成功状态;若超时未接收到,则进入错误状态。在成功状态下,Done被置为1,检查Req是否为0,当Req变为0后,则返回到空闲状态,否则保持成功状态不变。在错误状态下,将Error置为1,并将错误原因输出到Status,然后检查Req是否为0,当Req变为0,则返回到空闲状态,否则保持错误状态不变。
图8是从机站间通信功能块的控制流程图。其中A图是从机站间通信功能块状态机的处理流程图,主要有五个状态,由状态机控制其状态的转化。从机站间通信功能块初始进入到空闲状态,若未检测到Req的上升沿,则维持当前状态不变;当检查到Req上升沿,将首先检查各参数的合法性,若存在不合法的参数,则进入到错误状态。若各参数合法则检查是否接收到数据,未接收到数据则保持空闲状态保持不变。接收到数据后,检查收到的是读命令还是写命令,若收到读命令,则进入到读数据状态处理,然后组数据帧并发送给主机,并进入到成功状态;若收到写命令,则进入到写数据状态处理,然后将数据写入内存,并进入到成功状态。在成功状态下,Done被置为1,并给Status输出相应的值,然后进入到空闲状态;在错误状态下,将Error置为1,并将错误原因输出到Status,然后进入到空闲状态。
本发明实施例提供的PLC站间通信方法,能够有效地避免RS485同时发送数据产生冲突的问题,保证了通信的可靠性;由于硬件上大部分的小型PLC都带有RS485的接口,不需要做出改动,即使没有RS485接口,增加也相对简单;而软件方面并不需要对小型PLC的主体控制逻辑进行修改,只需增加站间通信的功能块即可,需要做出的修改较小,实施方便,成本较低。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种PLC站间通信方法,其特征在于,多个PLC通过串行通信接口连接在一起,构成一个总线拓扑网络,所述多个PLC通过串行通信接口进行通信,其中一个PLC作为主机,其余PLC作为从机,所述方法包括:
主机读取从机的数据时,主机发送读取数据的命令,从机接收到读取数据的命令后,将要读取的数据发送给主机;
主机向从机写数据时,主机直接将数据发送给从机,从机接收到数据后不需要应答;
从机之间通信时,主机先读取其中一个从机的数据,然后主机再把读取到的数据写入另外一个从机。
2.根据权利要求1所述的方法,其特征在于,PLC之间进行通信所传输的通信数据帧包括起始标识符、从机地址、数据长度、数据和CRC字段。
3.根据权利要求2所述的方法,其特征在于,所述从机地址字段用来标识与通信相关的从机地址,从机根据主机发出的通信数据帧中的从机地址字段判断接收到的数据是否是发给自己的,主机根据接收到的通信数据帧中的从机地址字段判断接收到的数据来自于哪个从机。
4.根据权利要求1所述的方法,其特征在于,采用功能块方式实现站间通信的控制,站间通信功能块包括主机站间通信功能块和从机站间通信功能块,调用主机站间通信功能块的PLC使用站间通信主机控制逻辑,调用从机站间通信功能块的PLC使用站间通信从机控制逻辑。
5.根据权利要求4所述的方法,其特征在于,只有一个PLC调用主机站间通信功能块,其他PLC调用从机站间通信功能块,且每个调用从机站间通信功能块的PLC使用不同的从机地址。
6.根据权利要求4或5所述的方法,其特征在于,调用主机站间通信功能块时,作为主机的PLC向Saddr填写目的从机的地址,Cmd输入写操作或者读操作,Daddr填写数据的存放地址,发送给从机的数据或者接收到从机的数据都放到该地址,Len表示发送给从机数据的长度或者接收从机数据的长度,Timeout表示等待从机响应数据的最大等待时间。
7.根据权利要求6所述的方法,其特征在于,主机站间通信功能块包括五个状态:空闲状态、等待超时状态、等待接收状态、成功状态和错误状态。
8.根据权利要求4或5所述的方法,其特征在于,调用从机站间通信功能块时,从机Saddr写入属于自己的地址,RecvAddr和RecvLen填写接收数据的存放地址和长度,SendAddr和SendLen填写发送数据的存放地址和长度。
9.根据权利要求8所述的方法,其特征在于,从机站间通信功能块包括五个状态:空闲状态、写数据状态、读数据状态、成功状态和错误状态。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述串行通信接口为RS485接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911003494.8A CN112769666B (zh) | 2019-10-21 | 2019-10-21 | Plc站间通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911003494.8A CN112769666B (zh) | 2019-10-21 | 2019-10-21 | Plc站间通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112769666A true CN112769666A (zh) | 2021-05-07 |
CN112769666B CN112769666B (zh) | 2022-12-13 |
Family
ID=75691793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911003494.8A Active CN112769666B (zh) | 2019-10-21 | 2019-10-21 | Plc站间通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112769666B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000227803A (ja) * | 1998-12-25 | 2000-08-15 | Mitsubishi Electric Corp | プログラマブルコントローラのデータリンクシステムの伝送制御方法および伝送制御システム |
CN101685301A (zh) * | 2009-07-29 | 2010-03-31 | 东华大学 | 复杂工况下数控机床嵌入式状态监控信息适配器及方法 |
CN101976074A (zh) * | 2010-11-03 | 2011-02-16 | 浙江工业大学 | 基于现场总线和控制网络的工业控制系统 |
CN102354175A (zh) * | 2011-08-01 | 2012-02-15 | 李遇浦 | Modbus现场总线DI-16路监测仪远程I/O控制系统 |
CN102902653A (zh) * | 2012-10-09 | 2013-01-30 | 天津市松正电动汽车技术股份有限公司 | 一种控制器串口通讯协议 |
CN103376778A (zh) * | 2012-04-17 | 2013-10-30 | 南京世泽科技有限公司 | 矿下无人驾驶机车无线控制系统 |
CN104932954A (zh) * | 2015-07-01 | 2015-09-23 | 西北工业大学 | 微小卫星fpga关键数据保护方法 |
CN106873513A (zh) * | 2017-03-01 | 2017-06-20 | 深圳市亿维自动化技术有限公司 | 一种plc系统及其主从连接结构 |
-
2019
- 2019-10-21 CN CN201911003494.8A patent/CN112769666B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000227803A (ja) * | 1998-12-25 | 2000-08-15 | Mitsubishi Electric Corp | プログラマブルコントローラのデータリンクシステムの伝送制御方法および伝送制御システム |
CN101685301A (zh) * | 2009-07-29 | 2010-03-31 | 东华大学 | 复杂工况下数控机床嵌入式状态监控信息适配器及方法 |
CN101976074A (zh) * | 2010-11-03 | 2011-02-16 | 浙江工业大学 | 基于现场总线和控制网络的工业控制系统 |
CN102354175A (zh) * | 2011-08-01 | 2012-02-15 | 李遇浦 | Modbus现场总线DI-16路监测仪远程I/O控制系统 |
CN103376778A (zh) * | 2012-04-17 | 2013-10-30 | 南京世泽科技有限公司 | 矿下无人驾驶机车无线控制系统 |
CN102902653A (zh) * | 2012-10-09 | 2013-01-30 | 天津市松正电动汽车技术股份有限公司 | 一种控制器串口通讯协议 |
CN104932954A (zh) * | 2015-07-01 | 2015-09-23 | 西北工业大学 | 微小卫星fpga关键数据保护方法 |
CN106873513A (zh) * | 2017-03-01 | 2017-06-20 | 深圳市亿维自动化技术有限公司 | 一种plc系统及其主从连接结构 |
Non-Patent Citations (4)
Title |
---|
李月恒等: "基于DeviceNet的嵌入式I/O模块设计", 《现代电子技术》 * |
王欣等: "基于MODBUS协议的TMS320LF2407A与PC机串口通信软件设计", 《武汉工程大学学报》 * |
袁金元等: "基于Modbus协议的PLC与多台电表通信研究", 《青岛大学学报(工程技术版)》 * |
赵晶: "基于PLC自动化控制系统的通信技术研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112769666B (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9015367B2 (en) | Fieldbus gateway using virtual serial fieldbus port and data transmission method thereof | |
CN104079677A (zh) | Rs485通讯端口地址的自动分配方法 | |
EP3211495B1 (en) | Programmable logic controller, control method thereof and control program thereof | |
CN106603359A (zh) | Plc系统的通讯控制方法及装置 | |
CN114285695A (zh) | 通信方法、装置、设备、系统和存储介质 | |
CN112769666B (zh) | Plc站间通信方法 | |
CN112367236B (zh) | Lin总线的数据调度方法及系统 | |
Sharma et al. | Designing c library for modbus-rtu to canbus and modbus-tcp iot converters | |
CN103346943A (zh) | 数据传输方法及系统 | |
CN104460445A (zh) | 一种can总线通信终端电阻接入方法 | |
CN112764385A (zh) | 小型plc总线的实现系统及方法 | |
JP2905075B2 (ja) | プログラマブルコントローラおよびその排他制御交信方法 | |
CN114488871A (zh) | 控制方法、变频器及计算机可读存储介质 | |
CN201514569U (zh) | 一种非标准组态的plc远程控制系统 | |
CN112165422A (zh) | 一种一主多从温度控制系统及地址自动匹配方法 | |
CN114095303B (zh) | 通信设备、数据传输方法及电子设备 | |
CN104133447A (zh) | 一种工程机械控制系统及工程机械 | |
CN114500566B (zh) | 通信方法及接口设备 | |
CN114785635B (zh) | 可编程逻辑控制器连接方法、装置、终端设备及存储介质 | |
CN114338265B (zh) | 一种基于ttp/c总线的程序下载系统及方法 | |
CN115277288B (zh) | 一种基于Memobus协议的通讯方法、装置、系统及起重机 | |
Jokanović | Communication with CNC machine through DNC interface | |
CN205486081U (zh) | 一种嵌入式CPU外部内存总线扩展Profinet总线装置 | |
CN103001839A (zh) | 学习命令以自动组态设定的系统、网关器及其方法 | |
CN216013989U (zh) | 扩展模块数量识别电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |