CN108965083B - 一种抗有源干扰的Modbus-RS485通信程序方法 - Google Patents
一种抗有源干扰的Modbus-RS485通信程序方法 Download PDFInfo
- Publication number
- CN108965083B CN108965083B CN201810605164.5A CN201810605164A CN108965083B CN 108965083 B CN108965083 B CN 108965083B CN 201810605164 A CN201810605164 A CN 201810605164A CN 108965083 B CN108965083 B CN 108965083B
- Authority
- CN
- China
- Prior art keywords
- data
- communication
- slave station
- receiving
- bit
- 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.)
- Active
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/40006—Architecture of a communication node
- H04L12/40013—Details regarding a bus controller
Abstract
本发明公开了一种抗有源干扰的Modbus‑RS485通信程序方法,包括PLC、RS485总线插头,屏蔽双绞线、通讯从站,PLC自带RS485接口并作为通信主站;PLC里设置通讯单元;所述通讯单元包括通讯端口初始化单元、数据接收单元、数据发送单元、数据出错处理单元;所述屏蔽双绞线至少有两根,一根用于接收数据,另一根用于发送数据,屏蔽双绞线一端接至PLC,另一端连接至通讯从站;所述通讯从站,具备Modbus‑RS485从站通信功能的设备;本发明结构简单,设计科学合理,能精准、快速的进行通信恢复传输,且运行可靠,能保证设备的良好运行。
Description
技术领域
本发明属于PLC通讯技术领域,尤其涉一种抗有源干扰的Modbus-RS485通信程序方法。
背景技术
在工业控制、电力通讯、智能仪表等领域,通常情况下据信号采用差分传输方式即Modbus-RS485通信,可以有效的解决共模干扰问题,最大距离可达1200米,并且允许多个收发设备接到同一条总线上。但是在工业环境应用中,大电流电压的启停,必然会产生一个瞬间磁场,导致Modbus-RS485通讯线缆上产生电流,导致原来通讯数据包因额外产生的电流丢失。比如风力发电上发电机组的并网导致水冷系统与变流器之间的的通信线缆会产生10A以上的电流信号,导致数据丢失。
由于数据的丢失,传统方案上无法进行自动纠正复位,必然导致被控设备无法监控,需要进行认为启停,进行恢复。造成安全隐患和人力浪费。
因此在通信程序内,能够进行数据包丢失判定,并且能够实现人工复位,显的尤为重要和迫切。
发明内容
本发明提供一种抗有源干扰的Modbus-RS485通信程序方法,用于解决了现有技术中PLC通过Modbus-RS485与中控通讯中存在外接启动电流干扰的问题。
本发明的目的是通过以下技术方案来实现的:一种抗有源干扰的Modbus-RS485通信程序方法,包括PLC、RS485总线插头,屏蔽双绞线、通讯从站,PLC自带RS485接口并作为通信主站;PLC里设置通讯单元;
所述通讯单元包括通讯端口初始化单元、数据接收单元、数据发送单元、数据出错处理单元;
所述通讯端口初始化单元用于设置通讯口的通讯方式,包含通讯的波特率、每个数据的数据位、奇偶校验的选择、起始条件的判断,结束条件的判断;
所述数据接收单元用于数据的接收,解析处理,非设备类故障或设备丢失,可进行通讯复位;
所述数据发送单元用于转换数据并发送数据;
所述数据出错处理单元,用于判断接收的数据是否正确并做出对数据的处理;具备Modbus-RS485主站通讯功能;
所述RS485总线插头,带有9针D型的公头与两个接线端子,9针D型的公头用于连接PLC上的RS485接口的母头,两个端子用于连接通讯线;
所述屏蔽双绞线至少有两根,一根用于接收数据,另一根用于发送数据,屏蔽双绞线一端接至PLC(可编程控制器),另一端连接至通讯从站;
所述通讯从站,具备Modbus-RS485从站通信功能的设备;
由于设备周围存在启动高电压电流的情况下,会形成在强磁场,导致通信线缆瞬间存在电流电压,导致数据无法接收应答,形成数据传输断网。在此类情况下,根据原设定数据接受应答时间进行判定,超过通讯时间之后,启动干扰程序,恢复整个Modbus-RS485通讯网络。作为优选方式,PLC采用正负两根信号线作为传输线路,工作模式采用串行半双工形式,通过平衡发送和差分接收方式实现通信;发送端将串行口的TTL电平信号转换成差分信号a,b两路输出,经过线缆传输之后在接收端将差分信号还原成TTL电平信号,在任意时刻只允许由一方发送数据,另一方接收数据;
数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位,传输速率可按要求任意设置。字符传输时间取决于波特率,数据发送可以是连续的也可以是断续的。
作为优选方式,传输顺序:低8位在前,高8位在后;Byte数据格式:bit0位为起始位,定义为二进制0;bit1~bit8位为传输和接收的数据;bit9位为偶校验位(bit1~bit8位异或);bit10位为停止位,定义为二进制1。
作为优选方式,设备通讯因为干扰中断的情况,可进行自动纠错复位。
作为优选方式,包括如下步骤:
步骤一:系统自检,检查设备硬件状态、;
步骤二:设备无误,设置初始化条件;
步骤三:根据初始化条件,设备正常则开始初始化设置;
步骤四:初始化加载指令,初始化通讯端口,硬件标识符、设置通讯的波特率、响应时间每个数据的数据位、奇偶校验的选择、初始化完成标志位、初始化错误标志位、初始化错误代码;
步骤五:初始化写入指令,初始化通讯从站地址、模式类型(指令请求写入)、通讯从站数据写入起始地址、写入数据长度、主站数据写入数据指针地址、数据写入完成位、数据写入故障位、数据写入错误代码;
步骤六:复位读取完成命令
步骤七:初始化读取指令,初始化通讯从站地址、模式类型(指令请求接受)、通讯从站数据被读取起始地址、读取数据长度、主站数据读取数据指针地址、数据读取完成位、数据读取故障位、数据读取错误代码;
步骤八:复位写入完成命令;
步骤九:通讯主站空闲时向通讯从站发送高电平(写入信息),通讯从站定时向通讯主站发送数据帧;
步骤十:通讯从站检测开始条件,不满足就一直等待接收,满足开始条件,则开始接受数据,执行步骤十一;
步骤十一:判断数据包侦头是否满足协议要求,满足就继续接受数据并执行下一步,不满足返回步骤十;
步骤十二:判断是否收到结束条件,若数据接收完成,重复执行步骤四到步骤十二;若数据没接收完成,则返回步骤十一,继续接收数据;每完成一次数据收发,反馈一次数据读取完成位和数据写入位,以反馈通讯正常;
步骤十三:同时判断接收数据是否超过设定的最大数据,超过则停止接收返回步骤十;
步骤十四:出错的判断,通讯数据传送错误、通讯中断后超时处理:若错误则启动干扰程序令:在数据读取和写入完成位均没有启动情况下,启动延时2S,2S后数据读取和写入完成位仍然没有一个启动,重新启动数据读取初始化、和数据写入初始化(返回步骤三)。间隔4S执行据读取初始化、和数据写入初始化,执行步骤三到步骤十三,直至恢复Modbus-RS485通讯,同时因为能够恢复数据写入、读取,两个完成位轮流交替运行延时判定计时归零,准备下一次复位使用;若正确则执行步骤十五;
步骤十五:通讯主站写入数据,此时通讯从站处于接收状态;通讯从站写入数据,此时通讯主站处于接收状态,以此不停轮回。
作为优选方式,设置一个起始条件和一个结束条件,通讯主站判断起始条件正确后开始接收数据,当收到结束条件时表示一帧数据接收完成。
作为优选方式,通讯主站定时向通讯从站发送数据帧,定时发送时间为1000ms,发送完后等待接收通讯从站发来的数据,通讯主站接收完数据帧后,启动初始化写入命令程序和读取命令程序,完成一次数据交换,刷新数据交换命令,以此循环执行。
作为优选方式,通讯错误判断分两种:数据传输错误、设备上电重启。
作为优选方式,数据传送错误:任何情况下导致通讯主站数据写入命令无法执行,数据写入完成位(程序模块DONE)为“0”;任何情况下导致主站数据读取命令无法执行,数据读取完成位为(程序模块DONE)“0”;设备上电重启:指通讯设备在初次得点运行;设备断电重新状态。
作为优选方式,通讯中断后处理:不管通讯是否中断,通讯主站始终按每个1000ms向通讯从站发送命令帧;当通讯从站发送命令帧后,等待1000ms还未收到反馈帧则认为通讯故障,在1000ms计时到时重新发送命令帧;当通讯主站发现通讯出错后,立即重启Modbus-RS485通讯程序,刷新初始化通讯设置,重复执行步骤三到步骤十三。
本发明的有益效果是:本发明结构简单,设计科学合理,能精准、快速的进行通信恢复传输,且运行可靠,能保证设备的良好运行。
附图说明
图1通讯示意图;
图2通讯启动和复位设置程序;
图3初始化设置;
图4数据写入(发送)设置;
图5数据读取(接受)设置。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
如图1所示,一种抗有源干扰的Modbus-RS485通信程序方法,包括PLC、RS485总线插头,屏蔽双绞线、通讯从站,PLC自带RS485接口并作为通信主站;PLC里设置通讯单元;
所述通讯单元包括通讯端口初始化单元、数据接收单元、数据发送单元、数据出错处理单元;
所述通讯端口初始化单元用于设置通讯口的通讯方式,包含通讯的波特率、每个数据的数据位、奇偶校验的选择、起始条件的判断,结束条件的判断;
所述数据接收单元用于数据的接收,解析处理,非设备类故障或设备丢失,可进行通讯复位;
所述数据发送单元用于转换数据并发送数据;
所述数据出错处理单元,用于判断接收的数据是否正确并做出对数据的处理;具备Modbus-RS485主站通讯功能;
所述RS485总线插头,带有9针D型的公头与两个接线端子,9针D型的公头用于连接PLC上的RS485接口的母头,两个端子用于连接通讯线;
所述屏蔽双绞线至少有两根,一根用于接收数据,另一根用于发送数据,屏蔽双绞线一端接至PLC(可编程控制器),另一端连接至通讯从站;
所述通讯从站,具备Modbus-RS485从站通信功能的设备;
由于设备周围存在启动高电压电流的情况下,会形成在强磁场,导致通信线缆瞬间存在电流电压,导致数据无法接收应答,形成数据传输断网。在此类情况下,根据原设定数据接受应答时间进行判定,超过通讯时间之后,启动干扰程序,恢复整个Modbus-RS485通讯网络。
根据原设定数据通讯完成应答时间进行判定,超过通讯时间之后,启动干扰程序;
主要包括对数据读取、写入完成位(DONE)实时检测,因干扰导致数据写入和均无法完成,进而延时判断数据丢失,重新启动数据写入和读取,恢复整个Modbus-RS485通讯网络。
干扰程序启动流程包括:检测到数据读取和写入完成位均没有启动,基于此启动延时2S,2S后数据读取和写入完成位仍然没有一个启动,在这样情况下认定通讯被干扰,重新启动数据读取初始化、和数据写入初始化(重新执行数据写去和读取)。间隔4S数据读取初始化、和数据写入初始化,直至恢复Modbus-RS485通讯,同时因为能够恢复数据写入、读取,两个完成位轮流交替运行延时判定计时归零,准备下一次复位使用。
在一个优选实施例中,PLC采用正负两根信号线作为传输线路,工作模式采用串行半双工形式,通过平衡发送和差分接收方式实现通信;发送端将串行口的TTL电平信号转换成差分信号a,b两路输出,经过线缆传输之后在接收端将差分信号还原成TTL电平信号,在任意时刻只允许由一方发送数据,另一方接收数据;
数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位,传输速率可按要求任意设置。字符传输时间取决于波特率,数据发送可以是连续的也可以是断续的。
在一个优选实施例中,传输顺序:低8位在前,高8位在后;Byte数据格式:bit0位为起始位,定义为二进制0;bit1~bit8位为传输和接收的数据;bit9位为偶校验位(bit1~bit8位异或);bit10位为停止位,定义为二进制1。
在一个优选实施例中,设备通讯因为干扰中断的情况,可进行自动纠错复位。
在一个优选实施例中,包括如下步骤:
步骤一:系统自检,检查设备硬件状态、;
步骤二:设备无误,设置初始化条件;
步骤三:根据初始化条件,设备正常则开始初始化设置;(见图2)
图2中:
注:
1、“M5.1”来源于数据写入命令完成位“DONE0”的状态反馈,若写入命令完成(即PLC的数据发送到通讯从站成功),则“M5.1”为“1”,若存在通讯故障,数据丢失则“M5.1”为“0”。
2、“M5.3”来源于数据读取命令完成位“DONE0”的状态反馈,若读取命令完成(即PLC接收到来自通讯从站的数据成功),则“M5.3”为“1”,若存在通讯故障,数据丢失则“M5.3”为“0”。
3、“DB31”、“DB32”为延时判定,即当“5.1”和“M5.3”均为“0”的状态下(表明通讯存在干扰,无法完成数据传输),进行计时判定,一旦“DB32”导通即重新启动数据写入初始化、和数据读取初始化命令“M7.7”导通。
4、“M4.0”PLC初次上电脉冲,PLC由STOP转换为RUN时,“M4.0”为“1”的程序扫描周期。
5、“M7.4”初始化执行命令,即PLC上电运行(“M4.0”)或存在通讯故障(“M7.7”)都会导致“M7.4”导通。M7.4用于后续数据写入初始化命令和数据读取初始化命令(启动命令)。
步骤四:初始化加载指令,初始化通讯端口,硬件标识符、设置通讯的波特率、响应时间每个数据的数据位、奇偶校验的选择、初始化完成标志位、初始化错误标志位、初始化错误代码;
步骤五:初始化写入指令,初始化通讯从站地址、模式类型(指令请求写入)、通讯从站数据写入起始地址、写入数据长度、主站数据写入数据指针地址、数据写入完成位、数据写入故障位、数据写入错误代码;(见图3)
图3中:
1、“DB14”通讯初始化命令,使PLC一启动就被设置为Modbus RTU通信协议。
2、“M7.4”注释见图2说明,在此“M7.4”为“1”时间,“DB14”启动。
3、“DB15”数据写入模块命令,对MB_MASTER或MB_SLAVE指令所使用的背景数据块。
4、“M10.1”数据初始化完成位,指令执行完成且未出错置“1”。
5、“M10.2”数据初始化错误位:M10.2为“0”表示未检测到错误;“M10.2”为“1”表示检测到错误。
6、“MW50”初始化代码,相关说明参考PLC说明表。
7、“DB14”(MB_COMM_LOAD)指令参数意义如下表1所示:
表1
步骤六:复位读取完成命令
步骤七:初始化读取指令,初始化通讯从站地址、模式类型(指令请求接受)、通讯从站数据被读取起始地址、读取数据长度、主站数据读取数据指针地址、数据读取完成位、数据读取故障位、数据读取错误代码;(见图4)
图4中:
1、“M7.4”参考图1中的注释,在此置位“M2.1”为“1”用于数据写入命令使用。
2、此处“DB15”为数据写入命令,一旦“M2.1”或“M2.2”任意一位为“1”,均会启动此处“DB15”(数据写入命令)。
3、“M2.1”注释见图4说明,因为上电运行或通信干扰重启通信情况下启动,“M2.1”为“1”时,启动“DB15”命令。
4、“M2.2”数据读取完成位,见图5注释,当数据读取完成后,置位“M2.2”以启动此处“DB15”,数据写入命令,实现通讯轮询,方式如下:
PLC数据写入(发送)→PLC数据读取(接受)→PLC数据写入(发送)→PLC数据读取(发送)......不停轮询实现数据收发。
5、“M5.0”数据写入完成位,指令执行完成且未出错置“1”。
用于后续数据读取命令。当数据写入完成后“M5.0”为“1”,启动数据读取命令。同时复位此处“DB15”数据写入的启动命令“M2.2”和“M2.1”,便于后续数据读取完成后启动数据写入命令。
6、“M5.1”数据写入命令激活,“M5.1”为“0”表示此处“DB15”数据写入命令没有在执行;“M5.1”为“0”表示此处“DB15”数据写入命令操作正在进行。
7、“M5.2”数据写入错误标志位,“M5.2”为“0”表示未检测到错误;“M5.2”为“1”表示检测到错误。
8、“MW54”数据写入错误代码,相关说明参考PLC说明表。
9、“DB15”(MB_MASTER)指令参数意义见下表2所示:
表2
步骤八:复位写入完成命令;
步骤九:通讯主站空闲时向通讯从站发写入信息,通讯从站定时向通讯主站发送数据帧;
步骤十:通讯从站检测开始条件,不满足就一直等待接收,满足开始条件,则开始接受数据,执行步骤十一;
步骤十一:判断数据包侦头是否满足协议要求,满足就继续接受数据并执行下一步,不满足返回步骤十;
步骤十二:判断是否收到结束条件,若数据接收完成,重复执行步骤四到步骤十二;若数据没接收完成,则返回步骤十一,继续接收数据;每完成一次数据收发,反馈一次数据读取完成位和数据写入位,以反馈通讯正常;
步骤十三:同时判断接收数据是否超过设定的最大数据,超过则停止接收返回步骤十;
步骤十四:出错的判断,通讯数据传送错误、通讯中断后超时处理:
若错误则启动干扰程序令:在数据读取和写入完成位均没有启动情况下,启动延时2S,2S后数据读取和写入完成位仍然没有一个启动,重新启动数据读取初始化、和数据写入初始化(返回步骤三)。间隔4S执行据读取初始化、和数据写入初始化,执行步骤三到步骤十三,直至恢复Modbus-RS485通讯,同时因为能够恢复数据写入、读取,两个完成位轮流交替运行延时判定计时归零,准备下一次复位使用。(见图1~5说明)
表5中:
1、“M5.0”数据写入完成位,参考图4中的注释,在此置位“M5.0”为“1”时(数据写入完成)启动数据读取命令,此处“DB15”。
2、此处“DB15”为数据读取命令,一旦“M5.0”为“1”(数据写入完成),均会启动此处“DB15”(数据读取命令)。
3、“M2.2”数据读取完成位,指令执行完成且未出错置“1”。
用于后续数据写入命令,当数据读取完成后“M2.2”为“1”,启动数据写入命令。同时复位此处“DB15”数据读取的启动命令“M5.0”,便于后续数据写入完成后启动数据读取命令。,方式如下:
PLC数据写入(发送)→PLC数据读取(接受)→PLC数据写入(发送)→PLC数据读取(发送)......不停轮询实现数据收发。
4、“M5.3”数据读取命令激活,“M5.3”为“0”表示此处“DB15”数据读取命令没有在执行;“M5.3”为“0”表示此处“DB15”数据读取命令操作正在进行。
5、“M5.4”数据读取错误标志位,“M5.4”为“0”表示未检测到错误;“M5.4”为“1”表示检测到错误。
6、“MW52”数据读取错误代码,相关说明参考PLC说明表。
7、“DB15”(MB_MASTER)指令参数意义见表2。
若正确则执行步骤十五
步骤十五:通讯主站写入数据,此时通讯从站处于接收状态;通讯从站写入数据,此时通讯主站处于接收状态,以此不停轮回。
在一个优选实施例中,设置一个起始条件和一个结束条件,通讯主站判断起始条件正确后开始接收数据,当收到结束条件时表示一帧数据接收完成。
在一个优选实施例中,通讯主站定时向通讯从站发送数据帧,定时发送时间为1000ms,发送完后等待接收通讯从站发来的数据,通讯主站接收完数据帧后,启动初始化写入命令程序和读取命令程序,完成一次数据交换,刷新数据交换命令,以此循环执行。
在一个优选实施例中,通讯错误判断分两种:数据传输错误、设备上电重启。
在一个优选实施例中,数据传送错误:任何情况下导致通讯主站数据写入命令无法执行,数据写入完成位(程序模块DONE)(见图3)为“0”;任何情况下导致主站数据读取命令无法执行,数据读取完成位(程序模块DONE)(见图4)为“0”;设备上电重启:指通讯设备在初次得点运行;设备断电重新状态。
在一个优选实施例中,通讯中断后处理:不管通讯是否中断,通讯主站始终按每个1000ms向通讯从站发送命令帧;当通讯从站发送命令帧后,等待1000ms还未收到反馈帧则认为通讯故障,在1000ms计时到时重新发送命令帧;当通讯主站发现通讯出错后,立即重启Modbus-RS485通讯程序,刷新初始化通讯设置,重复执行步骤一到步骤十五。
本发明中,解决了现有技术中PLC受外界瞬间強电流干扰,影响设备安全运行的问题;该系统包括PLC(可编程控制器)作为通信主站、RS485总线插头,屏蔽双绞线、通讯从站组成。
PLC的RS485接口,采用正负两根信号线作为传输线路,工作模式采用串行半双工形式,在任意时刻只允许由一方发送数据,另一方接收数据,数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位,传输速率可按要求任意设置;字符帧格式为一个起始位、7或8个数据位、一个奇/偶校验位或者无校验位、一个停止位。
通讯从站与PLC(通信主站)通过双绞屏蔽线连接,上电后,通讯从站处于接收状态,PLC(通讯主站)定时向通讯从站发出一命令帧数据,发送完成后,PLC(通讯主站)等待通讯从站回送数据。PLC(通讯主站)接收到数据后,对数据进行解析以控制通讯从站的启动、停止等,以此不停轮询处理。本发明结构简单,设计科学合理,能精准、快速的进行信号传输,且运行可靠,能保设备之间的通讯良好运行。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,应当指出的是,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种抗有源干扰的Modbus-RS485通信程序方法,其特征在于:包括PLC、RS485总线插头,屏蔽双绞线、通讯从站,PLC自带RS485接口并作为通信主站;PLC里设置通讯单元;
所述通讯单元包括通讯端口初始化单元、数据接收单元、数据发送单元、数据出错处理单元;
所述屏蔽双绞线至少有两根,一根用于接收数据,另一根用于发送数据,屏蔽双绞线一端接至PLC,另一端连接至通讯从站;
所述通讯从站,具备Modbus-RS485从站通信功能的设备;
根据原设定数据接受应答时间进行判定,超过通讯时间之后,启动干扰程序;
步骤一:系统自检,检查设备硬件状态;
步骤二:设备无误,设置初始化条件;
步骤三:根据初始化条件,设备正常则开始初始化设置;
步骤四:初始化加载指令,初始化通讯端口,硬件标识符、设置通讯的波特率、响应时间每个数据的数据位、奇偶校验的选择、初始化完成标志位、初始化错误标志位、初始化错误代码;
步骤五:初始化写入指令,初始化通讯从站地址、模式类型、通讯从站数据写入起始地址、写入数据长度、主站数据写入数据指针地址、数据写入完成位、数据写入故障位、数据写入错误代码;
步骤六:复位读取完成命令;
步骤七:初始化读取指令,初始化通讯从站地址、模式类型、通讯从站数据被读取起始地址、读取数据长度、主站数据读取数据指针地址、数据读取完成位、数据读取故障位、数据读取错误代码;
步骤八:复位写入完成命令;
步骤九:通讯主站空闲时向通讯从站写入信息,通讯从站定时向通讯主站发送数据帧;
步骤十:通讯从站检测开始条件,不满足就一直等待接收,满足开始条件,则开始接受数据,执行步骤十一;
步骤十一:判断数据包侦头是否满足协议要求,满足就继续接受数据并执行下一步,不满足返回步骤十;
步骤十二:判断是否收到结束条件,若数据接收完成,重复执行步骤四到步骤十二;若数据没接收完成,则返回步骤十一,继续接收数据;
步骤十三:同时判断接收数据是否超过设定的最大数据,超过则停止接收返回步骤十;
步骤十四:出错的判断,通讯数据传送错误、通讯中断后超时处理:
若正确则执行步骤十五;
步骤十五:通讯主站写入数据,此时通讯从站处于接收状态;通讯从站写入数据,此时通讯主站处于接收状态,以此不停轮回。
2.如权利要求1所述的一种抗有源干扰的Modbus-RS485通信程序方法,其特征在于,PLC采用正负两根信号线作为传输线路,工作模式采用串行半双工形式,通过平衡发送和差分接收方式实现通信;发送端将串行口的TTL电平信号转换成差分信号a,b两路输出,经过线缆传输之后在接收端将差分信号还原成TTL电平信号,在任意时刻只允许由一方发送数据,另一方接收数据;
数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位,传输速率可按要求任意设置。
3.如权利要求1所述的一种抗有源干扰的Modbus-RS485通信程序方法,其特征在于:传输顺序:低8位在前,高8位在后;Byte数据格式:bit0位为起始位,定义为二进制0;bit1~bit8位为传输和接收的数据;bit9位为偶校验位;bit10位为停止位,定义为二进制1。
4.如权利要求1所述的一种抗有源干扰的Modbus-RS485通信程序方法,其特征在于,设备通讯因为干扰中断的情况,可进行自动纠错复位。
5.如权利要求1所述的一种抗有源干扰的Modbus-RS485通信程序方法,其特征在于,设置一个起始条件和一个结束条件,通讯主站判断起始条件正确后开始接收数据,当收到结束条件时表示一帧数据接收完成。
6.如权利要求1所述的一种抗有源干扰的Modbus-RS485通信程序方法,其特征在于,通讯主站定时向通讯从站发送数据帧,定时发送时间为1000ms,发送完后等待接收通讯从站发来的数据,通讯主站接收完数据帧后,启动初始化写入命令程序和读取命令程序,完成一次数据交换,刷新数据交换命令,以此循环执行。
7.如权利要求1所述的一种抗有源干扰的Modbus-RS485通信程序方法,其特征在于,通讯错误判断分两种:数据传输错误、设备上电重启。
8.如权利要求1所述的一种抗有源干扰的Modbus-RS485通信程序方法,其特征在于,数据传送错误:任何情况下导致通讯主站数据写入命令无法执行,数据写入完成位为“0”;任何情况下导致主站数据读取命令无法执行,数据读取完成位为“0”;设备上电重启:指通讯设备在初次得点运行;设备断电重新状态。
9.如权利要求5所述的一种抗有源干扰的Modbus-RS485通信程序方法,其特征在于,
通讯中断后处理:不管通讯是否中断,通讯主站始终按每个1000ms向通讯从站发送命令帧;当通讯从站发送命令帧后,等待1000ms还未收到反馈帧则认为通讯故障,在1000ms计时到时重新发送命令帧;当通讯主站发现通讯出错后,立即重启Modbus-RS485通讯程序,刷新初始化通讯设置,重复执行步骤一到步骤十五。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810605164.5A CN108965083B (zh) | 2018-06-13 | 2018-06-13 | 一种抗有源干扰的Modbus-RS485通信程序方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810605164.5A CN108965083B (zh) | 2018-06-13 | 2018-06-13 | 一种抗有源干扰的Modbus-RS485通信程序方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108965083A CN108965083A (zh) | 2018-12-07 |
CN108965083B true CN108965083B (zh) | 2020-09-18 |
Family
ID=64488612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810605164.5A Active CN108965083B (zh) | 2018-06-13 | 2018-06-13 | 一种抗有源干扰的Modbus-RS485通信程序方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108965083B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008169B (zh) * | 2019-11-20 | 2022-08-12 | 南京南瑞水利水电科技有限公司 | 一种低成本高速通信总线及其传输控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425948A (zh) * | 2008-10-23 | 2009-05-06 | 上海大学 | 工业无线网接入工业以太网和现场总线的多协议网关及协议转换方法 |
CN101777797A (zh) * | 2010-02-05 | 2010-07-14 | 广州德昊电子科技有限公司 | 三合一智能配电柜 |
CN102354175A (zh) * | 2011-08-01 | 2012-02-15 | 李遇浦 | Modbus现场总线DI-16路监测仪远程I/O控制系统 |
CN106301620A (zh) * | 2016-07-29 | 2017-01-04 | 江西洪都航空工业集团有限责任公司 | 数据传输系统有源干扰动态模拟及干扰对抗能力测试系统 |
-
2018
- 2018-06-13 CN CN201810605164.5A patent/CN108965083B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425948A (zh) * | 2008-10-23 | 2009-05-06 | 上海大学 | 工业无线网接入工业以太网和现场总线的多协议网关及协议转换方法 |
CN101777797A (zh) * | 2010-02-05 | 2010-07-14 | 广州德昊电子科技有限公司 | 三合一智能配电柜 |
CN102354175A (zh) * | 2011-08-01 | 2012-02-15 | 李遇浦 | Modbus现场总线DI-16路监测仪远程I/O控制系统 |
CN106301620A (zh) * | 2016-07-29 | 2017-01-04 | 江西洪都航空工业集团有限责任公司 | 数据传输系统有源干扰动态模拟及干扰对抗能力测试系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108965083A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110941218B (zh) | 一种can总线控制器测试方法 | |
CN111104272B (zh) | 一种基于rx和tx的can总线控制器测试方法 | |
CN103746889B (zh) | 半竞争式rs-485总线多主通讯系统及其工作方法 | |
CN109768907A (zh) | 一种can总线波特率自适应设置方法 | |
CN103927285A (zh) | 一种高可靠的双通道串行总线的数据传输方法 | |
WO2021057017A1 (zh) | 一种现场总线中自动化重放攻击测试方法 | |
CN108965083B (zh) | 一种抗有源干扰的Modbus-RS485通信程序方法 | |
CN112118158A (zh) | 一种交换机的测试方法、测试装置、测试设备及存储介质 | |
CN103577362B (zh) | 改善数据传输的方法及其相关计算机系统 | |
CN105446837A (zh) | 检测iic接口器件是否连接的方法、装置以及系统 | |
CN110069437B (zh) | 基于响应帧有效性的rs-485总线极性自适应方法 | |
CN101841393A (zh) | 基于mvb接口的pwm输入模块及mvb设备 | |
CN104484260A (zh) | 一种基于GJB289总线接口SoC的仿真监控电路 | |
CN109068328B (zh) | 安全网络通信方法、终端及系统 | |
CN105634894A (zh) | 一种增强型can总线数据重发方法和装置 | |
CN201349219Y (zh) | 异步通信控制器 | |
CN107276832A (zh) | 一种提升psu和系统通信可靠性的方法及装置 | |
CN204390224U (zh) | 一种基于fpga的容错主从同步串行通讯系统 | |
CN104135411A (zh) | 一种基于rs232接口多节点通信的实现装置及方法 | |
CN102609388A (zh) | 一种从节点电路、通信方法及通信装置 | |
CN203387536U (zh) | 接口装置 | |
CN101650702B (zh) | 一种usb通信在线维护的装置和方法 | |
CN105406943A (zh) | 一种1553b总线的高完整性编码方法 | |
CN104572537A (zh) | 一种基于fpga的容错主从同步串行通讯系统 | |
CN110008167A (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 |