CN115047819A - 一种plc系统、plc数据传输方法及装置 - Google Patents
一种plc系统、plc数据传输方法及装置 Download PDFInfo
- Publication number
- CN115047819A CN115047819A CN202210535826.2A CN202210535826A CN115047819A CN 115047819 A CN115047819 A CN 115047819A CN 202210535826 A CN202210535826 A CN 202210535826A CN 115047819 A CN115047819 A CN 115047819A
- Authority
- CN
- China
- Prior art keywords
- data
- access unit
- external access
- service module
- data service
- 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/11—Plc I-O input output
- G05B2219/1103—Special, intelligent I-O processor, also plc can only access via processor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Programmable Controllers (AREA)
Abstract
本申请公开了一种PLC系统、PLC数据传输方法及装置,涉及工业控制技术领域和计算机技术领域。PLC系统中,IO调度器加载有与外部访问单元对应的配置信息,其中,IO内存区,用于缓存IO调度器与外部访问单元交互的数据;IO调度器,用于基于与外部访问单元对应的配置信息,按照预设的调度策略,与该外部访问单元连接的数据服务模块之间进行消息交互,使得数据服务模块与连接的外部访问单元交互数据;数据服务模块,用于与IO调度器之间进行消息交互,以及采用与连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。采用该方案,提高了当PLC系统需要支持新的工业协议时扩展的便利性。
Description
技术领域
本申请涉及工业控制技术领域和计算机技术领域,尤其涉及一种PLC系统、PLC数据传输方法及装置。
背景技术
可编程逻辑控制器(PLC,Programmable Logic Controller)是种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。
PLC系统在运行的过程中,经常需要周期性与外部IO电路模块或者设备进行数据读入和写出,一个PLC的操作周期通常包含扫描IO输入,读取IO输入,执行程序逻辑,输出数据等若干步骤。
目前,在实际应用中,一个PLC系统需要有能力连接数十种不同工业协议的设备,进行数据IO(输入输出)交互。在物联网与工业控制领域,存在着数量众多的工业协议标准。开发需要支持多种外部工业总线协议的PLC系统,在PLC系统的IO模块设计方面存在着非常大的复杂度挑战。
目前的PLC系统中,可以采用系统编程接口的方式实现支持多种工业协议。在操作系统中通过设备驱动提供系统编程接口,PLC应用程序通过调用系统编程接口实现对采用某种工业协议的外部设备的连接和访问。
然而,采用上述系统编程接口的方式,当需要支持新的工业协议时,需要针对设备驱动、协议层和PLC应用程序均进行相应的改动,即需要针对软件层面进行较大的改动,复杂性较大,存在不方便扩展的问题。
发明内容
本申请实施例提供一种PLC系统、PLC数据传输方法及装置,用以解决现有技术中存在的当PLC系统需要支持新的工业协议时不方便扩展的问题。
本申请实施例提供一种PLC系统,包括:IO调度器,IO内存区和数据服务模块,所述数据服务模块与外部访问单元连接,所述IO调度器加载有与外部访问单元对应的配置信息,其中:
所述IO内存区,用于缓存所述IO调度器与外部访问单元交互的数据;
所述IO调度器,用于基于与外部访问单元对应的配置信息,按照预设的调度策略,与该外部访问单元连接的所述数据服务模块之间进行消息交互,使得所述数据服务模块与连接的外部访问单元交互数据;
所述数据服务模块,用于与所述IO调度器之间进行消息交互,以及采用连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。
进一步的,与外部访问单元对应的配置信息,包括:数据缓存信息和访问信息;
所述IO调度器,用于基于所述数据缓存信息,从所述IO内存区获取需要发送给该外部访问单元的输出数据,或者,将来自该外部访问单元的输入数据,缓存到所述IO内存区;以及具体用于基于所述访问信息,按照预设的调度策略,以及所述访问信息表示的访问方式,与该外部访问单元连接的所述数据服务模块之间进行消息交互,使得所述数据服务模块与连接的外部访问单元交互数据。
进一步的,所述数据缓存信息,包括:所述IO内存区的存储位置和数据类型,以及还包括:数据数量和/或数据键值对;
所述访问信息为URL。
进一步的,所述IO内存区包括IO内存输入区和IO内存输出区,所述IO内存输入区用于缓存来自外部访问单元的数据,所述IO内存输出区用于缓存将要发送给外部访问单元的数据。
进一步的,所述数据服务模块,包括:点对点数据服务模块;
所述IO调度器,用于当需要从与点对点数据服务模块连接的外部访问单元获取数据时,向该点对点数据服务模块发送数据获取请求消息;当需要向与该点对点数据服务模块连接的外部访问单元发送数据时,从所述IO内存区获取需要发送的输出数据,向该点对点数据服务模块发送携带该输出数据的数据发送请求消息;
所述点对点数据服务模块,用于在接收到数据获取请求消息后,从连接的外部访问单元获取输入数据,并向所述IO调度器转发获取的该输入数据;在接收到所述数据发送请求消息后,获取携带的该输出数据,并向连接的外部访问单元转发获取的该输出数据;
所述IO调度器,还用于在接收到所述点对点数据服务模块发送的该输入数据后,将该输入数据缓存到所述IO内存区;
所述数据服务模块,包括:第一周期数据服务模块,所述系统还包括:共享内存;
所述IO调度器,用于周期的从所述IO内存区获取需要发送给与第一周期数据服务模块连接的外部访问单元的输出数据,将该输出数据缓存到所述共享内存中;
所述第一周期数据服务模块,用于周期的从所述共享内存中获取该输出数据,并向连接的外部访问单元转发获取的该输出数据;以及周期的从连接的外部访问单元获取输入数据,并将该输入数据缓存到所述共享内存中;
所述IO调度器,还用于周期的从所述共享内存中获取该输入数据,将该输入数据缓存到所述IO内存区;
所述数据服务模块,包括:第二周期数据服务模块,所述系统还包括:数据库;
所述IO调度器,用于周期的从所述IO内存区获取需要发送给与第二周期数据服务模块连接的外部访问单元的输出数据,将该输出数据缓存到所述数据库中;
所述第二周期数据服务模块,用于周期的从所述数据库中获取该输出数据,并向连接的外部访问单元转发获取的该输出数据;以及周期的从连接的外部访问单元获取输入数据,并将该输入数据缓存到所述数据库中;
所述IO调度器,还用于周期的从所述数据库中获取该输入数据,将该输入数据缓存到所述IO内存区。
进一步的,所述IO调度器,还用于向所述第一周期数据服务模块发送内存定位查询请求,以及接收所述第一周期数据服务模块返回的与连接的外部访问单元交互的数据在所述共享内存中的存储位置;
所述第一周期数据服务模块,还用于在接收到所述内存定位查询请求后,向所述IO调度器返回与连接的外部访问单元交互的数据在所述共享内存中的存储位置。
进一步的,所述IO调度器,还用于在所述向所述第一周期数据服务模块发送内存定位查询请求之前,从所述共享内存的头部区中获取表示共享内存布局版本的版本号,如果获取的该版本号与之前所述第一周期数据服务模块返回的版本号不一致,则执行所述向所述第一周期数据服务模块发送内存定位查询请求的步骤;
所述第一周期数据服务模块,还用于在更新所述共享内存布局版本之后,在所述共享内存的头部区中存储所述共享内存布局版本更新后的版本号;在接收到所述内存定位查询请求后,还向所述IO调度器返回所述共享内存布局版本的更新后的版本号。
本申请实施例还提供一种PLC数据传输方法,应用于PLC系统中的IO调度器,所述PLC系统还包括IO内存区和数据服务模块,所述数据服务模块与外部访问单元连接,所述IO调度器加载有与外部访问单元对应的配置信息,所述IO内存区用于缓存所述IO调度器与外部访问单元交互的数据,所述方法,包括:
获取与外部访问单元对应的配置信息;
基于获取的配置信息,按照预设的调度策略,与该外部访问单元连接的所述数据服务模块之间进行消息交互,使得所述数据服务模块采用连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。
进一步的,与外部访问单元对应的配置信息,包括:数据缓存信息和访问信息;
所述方法,还包括:
基于所述数据缓存信息,从所述IO内存区获取需要发送给该外部访问单元的输出数据,或者,将来自该外部访问单元的输入数据,缓存到所述IO内存区;
所述基于获取的配置信息,按照预设的调度策略,与该外部访问单元连接的所述数据服务模块之间进行消息交互,包括:
基于所述访问信息,按照预设的调度策略,以及所述访问信息表示的访问方式,与该外部访问单元连接的所述数据服务模块之间进行消息交互。
进一步的,所述数据缓存信息,包括:所述IO内存区的存储位置和数据类型,以及还包括:数据数量和/或数据键值对;
所述访问信息为URL。
进一步的,所述IO内存区包括IO内存输入区和IO内存输出区,所述IO内存输入区用于缓存来自外部访问单元的数据,所述IO内存输出区用于缓存将要发送给外部访问单元的数据。
进一步的,所述数据服务模块,至少包括如下服务模块之一:
点对点数据服务模块,第一周期数据服务模块和第二周期数据服务模块;
当包括第一周期数据服务模块时,所述系统还包括共享内存;
当包括第二周期数据服务模块时,所述系统还包括数据库;
所述基于获取的配置信息,按照预设的调度策略,与该外部访问单元连接的所述数据服务模块之间进行消息交互,包括:
当需要从与点对点数据服务模块连接的外部访问单元获取数据时,向该点对点数据服务模块发送数据获取请求消息,使得所述点对点数据服务模块在接收到数据获取请求消息后,从连接的外部访问单元获取输入数据,并向所述IO调度器转发获取的该输入数据;
当需要向与该点对点数据服务模块连接的外部访问单元发送数据时,从所述IO内存区获取需要发送的输出数据,向该点对点数据服务模块发送携带该输出数据的数据发送请求消息,使得所述点对点数据服务模块在接收到所述数据发送请求消息后,获取携带的该输出数据,并向连接的外部访问单元转发获取的该输出数据;
在接收到所述点对点数据服务模块发送的该输入数据后,将该输入数据缓存到所述IO内存区;
周期的从所述IO内存区获取需要发送给与第一周期数据服务模块连接的外部访问单元的输出数据,将该输出数据缓存到所述共享内存中,使得所述第一周期数据服务模块周期的从所述共享内存中获取该输出数据,并向连接的外部访问单元转发获取的该输出数据;
周期的从所述共享内存中获取输入数据,将该输入数据缓存到所述IO内存区,所述共享内存中的该输入数据为所述第一周期数据服务模块周期的从连接的外部访问单元获取,并缓存到所述共享内存中的;
周期的从所述IO内存区获取需要发送给与第二周期数据服务模块连接的外部访问单元的输出数据,将该输出数据缓存到所述数据库中,使得所述第二周期数据服务模块周期的从所述数据库中获取该输出数据,并向连接的外部访问单元转发获取的该输出数据;
周期的从所述数据库中获取输入数据,将该输入数据缓存到所述IO内存区,所述数据库中的该输入数据为所述第二周期数据服务模块周期的从连接的外部访问单元获取,并缓存到所述数据库中的。
本申请实施例还提供一种PLC数据传输方法,应用于PLC系统中的数据服务模块,所述PLC系统还包括IO调度器和IO内存区,所述数据服务模块与外部访问单元连接,所述IO调度器加载有与外部访问单元对应的配置信息,所述IO内存区用于缓存所述IO调度器与外部访问单元交互的数据,所述方法,包括:
与所述IO调度器之间进行消息交互;
采用连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。
进一步的,所述数据服务模块为点对点数据服务模块;
与所述IO调度器之间进行消息交互,以及采用与连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据,包括:
接收所述IO调度器当需要从与点对点数据服务模块连接的外部访问单元获取数据时发送的数据获取请求消息;
在接收到数据获取请求消息后,从连接的外部访问单元获取输入数据,并向所述IO调度器转发获取的该输入数据,使得所述IO调度器在接收到该输入数据后,将该输入数据缓存到所述IO内存区;
接收所述IO调度器当需要向与该点对点数据服务模块连接的外部访问单元发送数据时,发送的携带输出数据的数据发送请求消息,该输出数据为所述IO调度器从所述IO内存区获取的需要发送的输出数据;
在接收到所述数据发送请求消息后,获取携带的该输出数据,并向连接的外部访问单元转发获取的该输出数据。
进一步的,所述数据服务模块为第一周期数据服务模块,所述系统还包括共享内存;
与所述IO调度器之间进行消息交互,以及采用与连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据,包括:
周期的从所述共享内存中获取输出数据,并向连接的外部访问单元转发获取的该输出数据,该输出数据为所述IO调度器周期的从所述IO内存区获取的需要发送给与第一周期数据服务模块连接的外部访问单元,并缓存到所述共享内存中的;
周期的从连接的外部访问单元获取输入数据,并将该输入数据缓存到所述共享内存中,使得所述IO调度器周期的从所述共享内存中获取该输入数据,将该输入数据缓存到所述IO内存区。
进一步的,所述数据服务模块为第二周期数据服务模块,所述系统还包括数据库;
与所述IO调度器之间进行消息交互,以及采用与连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据,包括:
周期的从所述数据库中获取输出数据,并向连接的外部访问单元转发获取的该输出数据,该输出数据为所述IO调度器周期的从所述IO内存区获取的需要发送给与第二周期数据服务模块连接的外部访问单元,并缓存到所述数据库中的;
周期的从连接的外部访问单元获取输入数据,并将该输入数据缓存到所述数据库中,使得所述IO调度器周期的从所述数据库中获取该输入数据,将该输入数据缓存到所述IO内存区。
本申请实施例还提供一种PLC数据传输装置,应用于PLC系统中的IO调度器,所述PLC系统还包括IO内存区和数据服务模块,所述数据服务模块与外部访问单元连接,所述IO调度器加载有与外部访问单元对应的配置信息,所述IO内存区用于缓存所述IO调度器与外部访问单元交互的数据,所述装置,包括:
配置信息获取模块,用于获取与外部访问单元对应的配置信息;
数据交互模块,用于基于获取的配置信息,按照预设的调度策略,与该外部访问单元连接的所述数据服务模块之间进行消息交互,使得所述数据服务模块采用连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。
本申请实施例还提供一种PLC数据传输装置,应用于PLC系统中的数据服务模块,所述PLC系统还包括IO调度器和IO内存区,所述数据服务模块与外部访问单元连接,所述IO调度器加载有与外部访问单元对应的配置信息,所述IO内存区用于缓存所述IO调度器与外部访问单元交互的数据,所述装置,包括:
第一数据交互模块,用于与所述IO调度器之间进行消息交互;
第二数据交互模块,用于采用连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。
本申请实施例还提供一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一应用于IO调度器的PLC数据传输方法,或者,实现上述任一应用于数据服务模块的PLC数据传输方法。
本申请实施例还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于IO调度器的PLC数据传输方法,或者,实现上述任一应用于数据服务模块的PLC数据传输方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一应用于IO调度器的PLC数据传输方法,或者,执行上述任一应用于数据服务模块的PLC数据传输方法。
本申请有益效果包括:
本申请实施例提供的方案中,PLC系统包括IO调度器,IO内存区和数据服务模块,数据服务模块与外部访问单元连接,IO调度器加载有与外部访问单元对应的配置信息,其中,IO内存区用于缓存IO调度器与外部访问单元交互的数据;IO调度器用于基于与外部访问单元对应的配置信息,按照预设的调度策略,与该外部访问单元连接的数据服务模块之间进行消息交互,使得数据服务模块与连接的外部访问单元交互数据;数据服务模块用于与IO调度器之间进行消息交互,以及采用与连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。在该PLC系统中,当需要支持新的工业协议时,可以对数据服务模块进行扩展,以便可以采用该新的工业协议与外部访问单元交互数据,并增加相应的配置信息即可,不需要对IO调度器进行改动,相比现有技术,减少了对PLC系统的改动,即提高了扩展的便利性。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中:
图1为本申请实施例提供的PLC系统的结构示意图;
图2为本申请实施例提供的应用于IO调度器的PLC数据传输方法的流程图;
图3为本申请实施例提供的应用于数据服务模块的PLC数据传输方法的流程图;
图4为本申请另一实施例提供的PLC系统的结构示意图;
图5为本申请实施例提供的PLC数据传输方法的流程图;
图6为本申请另一实施例提供的PLC数据传输方法的流程图;
图7为本申请另一实施例提供的PLC数据传输方法的流程图;
图8为本申请实施例提供的应用于IO调度器的PLC数据传输装置的结构示意图;
图9为本申请实施例提供的应用于数据服务模块的PLC数据传输装置的结构示意图;
图10为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了给出提高当PLC系统需要支持新的工业协议时扩展的便利性的实现方案,本申请实施例提供了一种PLC系统、PLC数据传输方法及装置,以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本申请实施例提供一种PLC系统,如图1所示,包括:IO调度器,IO内存区和数据服务模块,数据服务模块与外部访问单元连接,IO调度器加载有与外部访问单元对应的配置信息,其中:
IO内存区,用于缓存IO调度器与外部访问单元交互的数据;
IO调度器,用于基于与外部访问单元对应的配置信息,按照预设的调度策略,与该外部访问单元连接的数据服务模块之间进行消息交互,使得数据服务模块与连接的外部访问单元交互数据;
数据服务模块,用于与IO调度器之间进行消息交互,以及采用与连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。
采用本申请实施例提供的上述PLC系统,当需要支持新的工业协议时,可以对数据服务模块进行扩展,以便可以采用该新的工业协议与外部访问单元交互数据,并增加相应的配置信息即可,不需要对IO调度器进行改动,相比现有技术,减少了对PLC系统的改动,即提高了扩展的便利性。
进一步的,与外部访问单元对应的配置信息,可以包括:数据缓存信息和访问信息;
IO调度器,可以基于数据缓存信息,从IO内存区获取需要发送给该外部访问单元的输出数据,或者,将来自该外部访问单元的输入数据,缓存到IO内存区;以及基于访问信息,按照预设的调度策略,以及访问信息表示的访问方式,与该外部访问单元连接的数据服务模块之间进行消息交互,使得数据服务模块与连接的外部访问单元交互数据。
进一步的,数据缓存信息,可以包括:存储位置和数据类型,以及还可以包括:数据数量和/或数据键值对;访问信息可以为URL(统一资源定位系统,Uniform ResourceLocator),URL中携带的各种信息可以表示相应的访问方式。
在上述PLC系统中,用户逻辑模块可以是各种PLC应用,可以基于应用需要,从IO内存区中获取来自外部访问单元的输入数据,也可以将需要发送给外部访问单元的输出数据缓存到IO内存区中。
本申请实施例中,如图1所示,IO内存区可以包括IO内存输入区和IO内存输出区,IO内存输入区用于缓存来自外部访问单元的数据,IO内存输出区用于缓存将要发送给外部访问单元的数据。
本申请实施例中,外部访问单元属于一个外部IO设备,一个外部IO设备可以包括多个外部访问单元。
基于本申请实施例提供的上述PLC系统,相应的,本申请实施例还提供一种PLC数据传输方法,应用于PLC系统中的IO调度器,PLC系统还包括IO内存区和数据服务模块,数据服务模块与外部访问单元连接,IO调度器加载有与外部访问单元对应的配置信息,IO内存区用于缓存IO调度器与外部访问单元交互的数据,如图2所示,该方法,包括:
步骤21、获取与外部访问单元对应的配置信息;
步骤22、基于获取的配置信息,按照预设的调度策略,与该外部访问单元连接的数据服务模块之间进行消息交互,使得数据服务模块采用与连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。
相应的,本申请实施例还提供一种PLC数据传输方法,应用于PLC系统中的数据服务模块,PLC系统还包括IO调度器和IO内存区,数据服务模块与外部访问单元连接,IO调度器加载有与外部访问单元对应的配置信息,IO内存区用于缓存IO调度器与外部访问单元交互的数据,如图3所示,该方法,包括:
步骤31、与IO调度器之间进行消息交互;
步骤32、采用与连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。
下面结合附图,用具体实施例对本申请提供的PLC系统及相应方法进行详细描述。
本申请实施例中,针对PLC系统连接的每个外部访问单元,可以创建IO配置文件,并且IO配置文件中包含有分别与每个外部访问单元对应的配置信息,该配置信息可以描述IO内存区中的存储位置与该外部访问单元的对应关系,具体可以描述IO内存区中的存储位置与该外部访问单元的IO物理地址的对应关系,从而实现与该外部访问单元之间的数据交互,以及交互的输入数据和输出数据在IO内存区中的存储。
具体的,在IO配置文件中对应每个外部访问单元存在一个访问单位,访问单位可以理解为是一段信息内容,其中包含了对应的配置信息。
配置信息具体可以包括:数据缓存信息和访问信息;
其中,数据缓存信息用于在IO内存区中获取输出数据和缓存输入数据,访问信息用于与外部访问单元之间交互数据。
进一步的,数据缓存信息可以包括存储位置、数据类型和数据数量;或者,数据缓存信息可以包括存储位置、数据类型和数据键值对;
访问信息可以为URL。
在其他实施例中,与外部访问单元对应的配置信息也可以通过源码提供。
下面针对外部访问单元对应的配置信息举例描述:
配置信息示例一:
在上述配置信息示例一中,“input”表示来自外部访问单元的输入数据的缓存;
字段“location”表示存储位置,可以是存储的首地址;
字段“type”表示数据类型,数据类型也可以表示数据在IO内存区所占据的字节;
字段“num”表示数据数量,即与外部访问单元之间的一次数据交互的数据数量;
基于上述三个字段的配置信息,即可以确定数据在IO内存区中的存储首地址开始到哪个地址结束。
字段“access”表示访问信息,即URL,一个URL可以包含协议,主机地址,端口,资源路径和查询参数等组成部分。
本申请实施例中,URL中的“协议”类型可以包括标准协议和自定义协议两种类型。
其中,标准协议可以包括“http”、“https”、“coap”和“coaps”等。标准协议可以用于通过点对点数据服务模块与外部访问单元交互数据。
自定义协议可以包括“静态内存共享”、“动态内存共享”和“数据库”三种类型,用于通过周期数据服务模块与外部访问单元交互数据。
配置信息示例二:
在上述配置信息示例二中,“output”表示需要发送给外部访问单元的输出数据的缓存;
字段“key”表示数据键值对,数据键值对可以描述输出数据的结构,用于使用JSON协议或者CBOR协议编码数据。
本申请实施例中,PLC系统中的数据服务模块,可以基于PLC应用的用户逻辑模块与外部访问单元之间数据交互的特性,采用不同的数据交互方式,可以是点对点的以请求的方式进行数据交互,也可以是周期性的数据交互。
如图4所示,本申请实施例提供的PLC系统中可以至少包括如下三种数据服务模块之一:
点对点数据服务模块,第一周期数据服务模块和第二周期数据服务模块;
当包括第一周期数据服务模块时,PLC系统还包括共享内存;
当包括第二周期数据服务模块时,PLC系统还包括数据库。
下面针对每种数据服务模块,对PLC系统与外部访问单元之间的数据交互进行详细描述。
针对点对点数据服务模块,本申请实施例提供一种PLC数据传输方法,如图5所示,包括:
步骤501、IO调度器按照预设的调度策略,获取加载的IO配置文件中与外部访问单元对应的配置信息,该外部访问单元与点对点数据服务模块相连。
本步骤中,以下述配置信息示例三为例进行描述:
IO调度器在加载IO配置文件后,可以按照预设的调度策略依次获取外部访问单元对应的配置信息,如果该配置信息为输出类型,执行步骤502,如果该配置信息为输入类型,执行步骤507。
步骤502、如果该配置信息为输出类型,表示需要基于该配置信息向外部访问单元发送输出数据,IO调度器基于配置信息,从IO内存输出区中配置信息表示的存储位置获取输出数据。
按照上述配置信息三中字段“location”、“type”和“num”的信息,IO调度器可以从IO内存输出区的位置1和位置2按照字节格式获取两条输出数据。
步骤503、IO调度器对获取的输出数据进行编码。
本申请实施例中,可以基于实际应用的需要,采用相应的编码方式对输出数据进行编码,例如,可以使用JSON数组格式对输出数据进行编码,编码后格式如:[100,200];也可以使用纯文本格式编码,通常,当数据数量为1时,可以使用纯文本格式编码。
如果配置信息中包含数据键值对,则可以按照数据键值对表示的编码格式对输出数据进行编码,例如,使用JSON对象格式对输出数据进行编码,结果为{“key1”:100,“key2”:200}。
步骤504、IO调度器向该外部访问单元连接的点对点数据服务模块,发送携带有输出数据的数据发送请求消息。
本步骤中,具体可以基于上述配置信息三中字段“access”的URL,生成携带有输出数据的数据发送请求消息(PUT消息),并发送给点对点数据服务模块。
数据发送请求消息中,还携带有该URL。
步骤505、点对点数据服务模块在接收到数据发送请求消息后,从中获取携带的输出数据。
本申请实施例中,点对点数据服务模块可以先确定数据发送请求消息中携带的URL是否满足要求,即是否能够处理,如果满足,继续执行后续步骤,如果不满足,可以向IO调度器返回表示URL不满足要求的错误码,供IO调度器进行相应的处理。
步骤506、点对点数据服务模块采用连接的外部访问单元支持的工业协议,向连接的外部访问单元转发获取的该输出数据。
步骤507、如果该配置信息为输入类型,表示需要基于该配置信息向外部访问单元请求输入数据,IO调度器基于配置信息,向该外部访问单元连接的点对点数据服务模块,发送数据获取请求消息。
本步骤中,具体可以基于上述配置信息三中字段“access”的URL,生成数据获取请求消息(GET消息),并发送给点对点数据服务模块。
数据获取请求消息中可以携带URL。
步骤508、点对点数据服务模块在接收到数据获取请求消息后,从连接的外部访问单元获取输入数据。
本步骤中,可以基于携带的URL,采用连接的外部访问单元支持的工业协议,从连接的外部访问单元获取输入数据。
本申请实施例中,点对点数据服务模块可以先确定数据获取请求消息中携带的URL是否满足要求,即是否能够处理,如果满足,继续执行后续步骤,如果不满足,可以向IO调度器返回表示URL不满足要求的错误码,供IO调度器进行相应的处理。
步骤509、点对点数据服务模块向IO调度器转发获取的输入数据。
具体可以向IO调度器发送携带有该输入数据的请求响应消息。
步骤510、IO调度器在接收到请求响应消息后,从中获取携带的输入数据。
本步骤中,IO调度器可以按照配置信息三中“type”指示的格式完成数据解码,例如,如果是纯文本格式,完成单个数据解码,如果是JSON数组格式,解码获得若干条数据。
本步骤中,如果配置信息中包含数据键值对,也可以使用配置信息中的数据键值对表示的结构解码并获取输入数据。
步骤511、IO调度器在确定获取的输入数据满足配置信息中的数据类型和数据数量后,将获取的该输入数据缓存到IO内存输入区中配置信息表示的存储位置。
比如,第一条数据的存储位置从首地址开始,第二条数据的存储位置为首地址加上第一条数据占据的字节数。
本申请实施例提供的上述图5所示的PLC数据传输方法,基于点对点数据服务模块,实现与外部访问单元之间的数据交互,并且,PLC系统中可以包括多个点对点数据服务模块,分别用于支持多种工业协议的数据交互。
针对第一周期数据服务模块,本申请实施例提供一种PLC数据传输方法,如图6所示,包括:
步骤601、IO调度器获取加载的IO配置文件中与外部访问单元对应的配置信息,该外部访问单元与第一周期数据服务模块相连。
本步骤中,以下述配置信息示例四为例进行描述:
基于上述配置信息示例四中的信息,在IO内存区的存储位置为1,数据类型为“INT”,一条数据在内存中占据2个字节,数据数量为1,URL中的协议信息“shm2”可以表示采用共享内存的方式与第一周期数据服务模块交互数据。
采用共享内存的方式,进一步的,可以包括“静态内存共享”和“动态内存共享”,其中:
对于“静态内存共享”,在URL中可以包含数据在共享内存中位置的信息,例如,URL的格式可以如下:
[协议标记]://[共享内存名称]/[偏移位置]
[协议标记]://[共享内存名称]?[偏移位置查询]
举例:shm://shared-mem/100,或shm://shared-mem?offset=100;
对于“动态内存共享”,在URL中不包含数据在共享内存中的地址,可以提供必要的信息供IO调度器向第一周期数据服务模块请求地址查询,例如,URL中可以包含信息:共享内存名称、端口、路径和查询参数,URL的格式可以如下:
[协议标记]://[共享内存名称]:端口/路径?[偏移位置查询]
举例:shm2://shared-mem:5555/ethercat?master=100&slave=1®=100;
该配置信息可以为输出类型,也可以为输入类型。
步骤602、IO调度器针对配置信息创建内存节点AN(Access-Node),每个内存节点AN可以包含如下信息:
URL:从加载的配置信息中获取;
LOC:输入数据或输出数据在共享内存中的存储位置。
本申请实施例中,如果URL中的协议表示“静态内存共享”,其初始值可以从URL中获取,如果表示“动态内存共享”,其初始值可以先设置一个无效值(比如-1),然后通过LOC获取流程获取LOC。
在LOC获取流程中,IO调度器可以基于URL构建一个内存定位查询请求,并发送给第一周期数据服务模块,第一周期数据服务模块基于该内存定位查询请求,确定与连接的外部访问单元之间交互的数据在共享内存中的存储位置,并在内存定位查询响应中携带该存储位置,返回给IO调度器。
进一步的,还可以同时返回版本号V(表示共享内存布局版本),并在共享内存头部中添加版本号V,相应的,如果是“动态内存共享”,创建的内存节点AN中还可以包含版本号V,如果版本号V与共享内存头部中的版本号V一致,表示共享内存的布局没有变,则LOC也保持不变,否则,表示LOC已发生改变,需要重新执行LOC获取流程,即向第一周期数据服务模块发送内存定位查询请求。
步骤603、IO调度器基于内存节点AN中的信息,周期性的执行输入数据获取任务或输出数据存储任务。
执行输入数据获取任务的流程如下:
第一步:检查当前内存节点AN中URL中包含的共享内存对象是否已经打开,如果未打开,则试图打开并映射到当前进程空间,如果打开失败则退出当前任务的执行;
第二步:获取共享内存头部中的同步锁;
第三步:基于内存节点AN中的LOC,从共享内存中LOC表示的存储位置,获取来自外部访问单元的输入数据,并释放同步锁;
该输入数据为第一周期数据服务模块周期的从连接的外部访问单元获取的,并缓存到共享内存中的;
第四步:按照配置信息中表示的存储位置,将获取的输入数据缓存到IO内存输入区的相应位置。
执行输出数据存储任务的流程如下:
第一步:检查当前内存节点AN中URL中包含的共享内存对象是否已经打开,如果未打开,则试图打开并映射到当前进程空间,如果打开失败则退出当前任务的执行;
第二步:基于配置信息中表示的存储位置,从IO内存输出区获取需要发送给与第一周期数据服务模块连接的外部访问单元的输出数据;
第三步:获取共享内存头部中的同步锁;
第四步:基于内存节点AN中的LOC,将该输出数据缓存到共享内存中LOC表示的存储位置,并释放同步锁。
步骤604、第一周期数据服务模块在启动后,加载私有配置,该私有配置用于采用连接的外部访问单元支持的工业协议,与外部访问单元交互数据。
步骤605、第一周期数据服务模块创建共享内存。
共享内存可以包含头部区和数据区,其中,头部区中可以包含数据区的长度同步锁等,数据区用于存储与外部访问单元交互的数据。
基于上述描述的内容,当采用“动态内存共享”时,头部区中还可以包括内存布局版本的版本号V。
步骤606、第一周期数据服务模块周期的执行输入数据存储任务或输出数据获取任务。
执行输入数据存储任务流程如下:
第一步:采用连接的外部访问单元支持的工业协议,从外部访问单元获取输入数据;
第二步:获取共享内存头部中的同步锁;
第三步:将获取的该输入数据缓存到共享内存中的相应位置,并释放同步锁。
执行输出数据获取任务流程如下:
第一步:获取共享内存头部中的同步锁;
第二步:从共享内存中的相应位置,获取需要发送给外部访问单元的输出数据,该输出数据为IO调度器存储到共享内存中的,并释放同步锁;
第三步:采用连接的外部访问单元支持的工业协议,向连接的外部访问单元转发获取的该输出数据。
上述步骤601-步骤603与步骤604-步骤606之间,在执行顺序上,按照步骤之间的逻辑执行,并非严格按照上述步骤描述的先后顺序执行。
本申请实施例提供的上述图6所示的PLC数据传输方法,基于第一周期数据服务模块和共享内存,实现与外部访问单元之间的数据交互,并且,PLC系统中可以包括多个第一周期数据服务模块,分别用于支持多种工业协议的数据交互。
针对第二周期数据服务模块,本申请实施例提供一种PLC数据传输方法,如图7所示,包括:
步骤701、IO调度器获取加载的IO配置文件中与外部访问单元对应的配置信息,该外部访问单元与第二周期数据服务模块相连。
本步骤中,以下述配置信息示例五为例进行描述:
基于上述配置信息五中的信息,在IO内存区的存储位置为10,数据类型为“DINT”,一条数据在内存中占据4个字节,数据数量为1,URL中的协议信息“redis”可以表示采用数据库的方式与第二周期数据服务模块交互数据。
对于数据库,在URL中还可以包含数据库的IP地址和端口号,数据的键值等,例如,URL的格式可以如下:
[协议标记]://[数据库IP]:端口/[数据键值]
举例:redis://192.168.1.11:6666/1/1/1。
步骤702、IO调度器针对配置信息创建内存节点AN(Access-Node),每个内存节点AN可以包含如下信息:
URL:从加载的配置信息中获取;
内存数据的连接信息,也可以从配置信息中获取。
步骤703、IO调度器基于内存节点AN中的信息,周期性的执行输入数据获取任务或输出数据存储任务。
执行输入数据获取任务的流程如下:
第一步:检查当前内存节点AN中的URL指向的数据库是否已经连接,如果未连接,则试图连接,如果连接失败则退出当前任务的执行;
第二步:使用内存节点AN中URL中的数据键值从数据库中,获取来自外部访问单元的输入数据;
该输入数据为第二周期数据服务模块周期的从连接的外部访问单元获取的,并缓存到数据库中的;
第三步:按照配置信息中表示的存储位置,将获取的输入数据缓存到IO内存输入区的相应位置。
执行输出数据存储任务的流程如下:
第一步:检查当前内存节点AN中的URL指向的数据库是否已经连接,如果未连接,则试图连接,如果连接失败则退出当前任务的执行;
第二步:基于配置信息中表示的存储位置,从IO内存输出区获取需要发送给与第二周期数据服务模块连接的外部访问单元的输出数据;
第三步:按照内存节点AN中URL中的数据键值,将该输出数据缓存到数据库中的相应位置。
步骤704、第二周期数据服务模块在启动后,加载私有配置,该私有配置用于采用连接的外部访问单元支持的工业协议,与外部访问单元交互数据。
步骤705、第二周期数据服务模块建立与数据库之间的网络连接。
步骤706、第二周期数据服务模块周期的执行输入数据存储任务或输出数据获取任务。
执行输入数据存储任务流程如下:
第一步:采用连接的外部访问单元支持的工业协议,从外部访问单元获取输入数据;
第二步:将获取的该输入数据缓存到数据库中的相应数据键值上。
执行输出数据获取任务流程如下:
第一步:从数据库中的相应数据键值上获取需要发送给外部访问单元的输出数据,该输出数据为IO调度器存储到数据库中的;
第二步:采用连接的外部访问单元支持的工业协议,向连接的外部访问单元转发获取的该输出数据。
上述步骤701-步骤703与步骤704-步骤706之间,在执行顺序上,按照步骤之间的逻辑执行,并非严格按照上述步骤描述的先后顺序执行。
本申请实施例提供的上述图7所示的PLC数据传输方法,基于第二周期数据服务模块和数据库,实现与外部访问单元之间的数据交互,并且,PLC系统中可以包括多个第二周期数据服务模块,分别用于支持多种工业协议的数据交互。
基于同一发明构思,根据本申请上述实施例提供的应用于IO调度器的PLC数据传输方法,相应地,本申请另一实施例还提供了一种PLC数据传输装置,应用于PLC系统中的IO调度器,所述PLC系统还包括IO内存区和数据服务模块,所述数据服务模块与外部访问单元连接,所述IO调度器加载有与外部访问单元对应的配置信息,所述IO内存区用于缓存所述IO调度器与外部访问单元交互的数据,其结构示意图如图8所示,具体包括:
配置信息获取模块81,用于获取与外部访问单元对应的配置信息;
数据交互模块82,用于基于获取的配置信息,按照预设的调度策略,与该外部访问单元连接的所述数据服务模块之间进行消息交互,使得所述数据服务模块采用连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。
进一步的,与外部访问单元对应的配置信息,包括:数据缓存信息和访问信息;
数据交互模块82,还用于基于所述数据缓存信息,从所述IO内存区获取需要发送给该外部访问单元的输出数据,或者,将来自该外部访问单元的输入数据,缓存到所述IO内存区;
以及具体用于基于所述访问信息,按照预设的调度策略,以及所述访问信息表示的访问方式,与该外部访问单元连接的所述数据服务模块之间进行消息交互。
进一步的,所述数据缓存信息,包括:所述IO内存区的存储位置和数据类型,以及还包括:数据数量和/或数据键值对;所述访问信息为URL。
进一步的,所述IO内存区包括IO内存输入区和IO内存输出区,所述IO内存输入区用于缓存来自外部访问单元的数据,所述IO内存输出区用于缓存将要发送给外部访问单元的数据。
进一步的,所述数据服务模块,至少包括如下服务模块之一:
点对点数据服务模块,第一周期数据服务模块和第二周期数据服务模块;
当包括第一周期数据服务模块时,所述系统还包括共享内存;
当包括第二周期数据服务模块时,所述系统还包括数据库;
数据交互模块82,具体用于当需要从与点对点数据服务模块连接的外部访问单元获取数据时,向该点对点数据服务模块发送数据获取请求消息,使得所述点对点数据服务模块在接收到数据获取请求消息后,从连接的外部访问单元获取输入数据,并向所述IO调度器转发获取的该输入数据;
当需要向与该点对点数据服务模块连接的外部访问单元发送数据时,从所述IO内存区获取需要发送的输出数据,向该点对点数据服务模块发送携带该输出数据的数据发送请求消息,使得所述点对点数据服务模块在接收到所述数据发送请求消息后,获取携带的该输出数据,并向连接的外部访问单元转发获取的该输出数据;
在接收到所述点对点数据服务模块发送的该输入数据后,将该输入数据缓存到所述IO内存区;
周期的从所述IO内存区获取需要发送给与第一周期数据服务模块连接的外部访问单元的输出数据,将该输出数据缓存到所述共享内存中,使得所述第一周期数据服务模块周期的从所述共享内存中获取该输出数据,并向连接的外部访问单元转发获取的该输出数据;
周期的从所述共享内存中获取输入数据,将该输入数据缓存到所述IO内存区,所述共享内存中的该输入数据为所述第一周期数据服务模块周期的从连接的外部访问单元获取,并缓存到所述共享内存中的;
周期的从所述IO内存区获取需要发送给与第二周期数据服务模块连接的外部访问单元的输出数据,将该输出数据缓存到所述数据库中,使得所述第二周期数据服务模块周期的从所述数据库中获取该输出数据,并向连接的外部访问单元转发获取的该输出数据;
周期的从所述数据库中获取输入数据,将该输入数据缓存到所述IO内存区,所述数据库中的该输入数据为所述第二周期数据服务模块周期的从连接的外部访问单元获取,并缓存到所述数据库中的。
进一步的,数据交互模块82,还用于向所述第一周期数据服务模块发送内存定位查询请求;并接收所述第一周期数据服务模块在接收到所述内存定位查询请求后,返回的与连接的外部访问单元交互的数据在所述共享内存中的存储位置。
进一步的,数据交互模块82,还用于在所述向所述第一周期数据服务模块发送内存定位查询请求之前,从所述共享内存的头部区中获取表示共享内存布局版本的版本号,如果获取的该版本号与之前所述第一周期数据服务模块返回的版本号不一致,则执行所述向所述第一周期数据服务模块发送内存定位查询请求的步骤;
接收所述第一周期数据服务模块在接收到所述内存定位查询请求后,返回的所述共享内存布局版本的更新后的版本号,所述更新后的版本号为所述第一周期数据服务模块在更新所述共享内存布局版本之后,在所述共享内存的头部区中存储的所述共享内存布局版本更新后的版本号。
基于同一发明构思,根据本申请上述实施例提供的应用于数据服务模块的PLC数据传输方法,相应地,本申请另一实施例还提供了一种PLC数据传输装置,应用于PLC系统中的数据服务模块,所述PLC系统还包括IO调度器和IO内存区,所述数据服务模块与外部访问单元连接,所述IO调度器加载有与外部访问单元对应的配置信息,所述IO内存区用于缓存所述IO调度器与外部访问单元交互的数据,其结构示意图如图9所示,具体包括:
第一数据交互模块91,用于与所述IO调度器之间进行消息交互;
第二数据交互模块92,用于采用连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。
进一步的,所述数据服务模块为点对点数据服务模块;
第一数据交互模块91,具体用于接收所述IO调度器当需要从与点对点数据服务模块连接的外部访问单元获取数据时发送的数据获取请求消息;
第二数据交互模块92,具体用于在接收到数据获取请求消息后,从连接的外部访问单元获取输入数据;
第一数据交互模块91,还用于向所述IO调度器转发获取的该输入数据,使得所述IO调度器在接收到该输入数据后,将该输入数据缓存到所述IO内存区;
第一数据交互模块91,具体用于接收所述IO调度器当需要向与该点对点数据服务模块连接的外部访问单元发送数据时,发送的携带输出数据的数据发送请求消息,该输出数据为所述IO调度器从所述IO内存区获取的需要发送的输出数据;
第二数据交互模块92,具体用于在接收到所述数据发送请求消息后,获取携带的该输出数据,并向连接的外部访问单元转发获取的该输出数据。
进一步的,所述数据服务模块为第一周期数据服务模块,所述系统还包括共享内存;
第一数据交互模块91,具体用于周期的从所述共享内存中获取输出数据;
第二数据交互模块92,具体用于向连接的外部访问单元转发获取的该输出数据,该输出数据为所述IO调度器周期的从所述IO内存区获取的需要发送给与第一周期数据服务模块连接的外部访问单元,并缓存到所述共享内存中的;
第二数据交互模块92,还用于周期的从连接的外部访问单元获取输入数据;
第一数据交互模块91,还用于将该输入数据缓存到所述共享内存中,使得所述IO调度器周期的从所述共享内存中获取该输入数据,将该输入数据缓存到所述IO内存区。
进一步的,第一数据交互模块91,还用于接收所述IO调度器发送的内存定位查询请求;并向所述IO调度器返回与连接的外部访问单元交互的数据在所述共享内存中的存储位置。
进一步的,所述内存定位查询请求为所述IO调度器当从所述共享内存的头部区中获取的表示共享内存布局版本的版本号,与之前所述第一周期数据服务模块返回的版本号不一致时发送的;
第一数据交互模块91,还用于在更新所述共享内存布局版本之后,在所述共享内存的头部区中存储所述共享内存布局版本更新后的版本号;在接收到所述内存定位查询请求后,还向所述IO调度器返回所述共享内存布局版本的更新后的版本号。
进一步的,所述数据服务模块为第二周期数据服务模块,所述系统还包括数据库;
第一数据交互模块91,具体用于周期的从所述数据库中获取输出数据;
第二数据交互模块92,具体用于向连接的外部访问单元转发获取的该输出数据,该输出数据为所述IO调度器周期的从所述IO内存区获取的需要发送给与第二周期数据服务模块连接的外部访问单元,并缓存到所述数据库中的;
第二数据交互模块92,具体用于周期的从连接的外部访问单元获取输入数据;
第一数据交互模块91,具体用于将该输入数据缓存到所述数据库中,使得所述IO调度器周期的从所述数据库中获取该输入数据,将该输入数据缓存到所述IO内存区。
上述各模块的功能可对应于图1至图7所示流程中的相应处理步骤。
本申请的实施例所提供的上述PLC数据传输装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的模块划分方式仅是众多模块划分方式中的一种,如果划分为其他模块或不划分模块,只要上述PLC数据传输装置具有上述功能,都应该在本申请的保护范围之内。
本申请实施例还提供一种电子设备,如图10所示,包括处理器101和机器可读存储介质102,所述机器可读存储介质102存储有能够被所述处理器101执行的机器可执行指令,所述处理器101被所述机器可执行指令促使:实现上述任一应用于IO调度器的PLC数据传输方法,或者,实现上述任一应用于数据服务模块的PLC数据传输方法。
本申请实施例还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于IO调度器的PLC数据传输方法,或者,实现上述任一应用于数据服务模块的PLC数据传输方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一应用于IO调度器的PLC数据传输方法,或者,执行上述任一应用于数据服务模块的PLC数据传输方法。
上述电子设备中的机器可读存储介质可以包括随机存取存储器(Random AccessMemory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质,计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种PLC系统,其特征在于,包括:IO调度器,IO内存区和数据服务模块,所述数据服务模块与外部访问单元连接,所述IO调度器加载有与外部访问单元对应的配置信息,其中:
所述IO内存区,用于缓存所述IO调度器与外部访问单元交互的数据;
所述IO调度器,用于基于与外部访问单元对应的配置信息,按照预设的调度策略,与该外部访问单元连接的所述数据服务模块之间进行消息交互,使得所述数据服务模块与连接的外部访问单元交互数据;
所述数据服务模块,用于与所述IO调度器之间进行消息交互,以及采用连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。
2.如权利要求1所述的系统,其特征在于,与外部访问单元对应的配置信息,包括:数据缓存信息和访问信息;
所述IO调度器,用于基于所述数据缓存信息,从所述IO内存区获取需要发送给该外部访问单元的输出数据,或者,将来自该外部访问单元的输入数据,缓存到所述IO内存区;以及具体用于基于所述访问信息,按照预设的调度策略,以及所述访问信息表示的访问方式,与该外部访问单元连接的所述数据服务模块之间进行消息交互,使得所述数据服务模块与连接的外部访问单元交互数据。
3.如权利要求2所述的系统,其特征在于,所述数据缓存信息,包括:所述IO内存区的存储位置和数据类型,以及还包括:数据数量和/或数据键值对;
所述访问信息为URL。
4.如权利要求1所述的系统,其特征在于,所述IO内存区包括IO内存输入区和IO内存输出区,所述IO内存输入区用于缓存来自外部访问单元的数据,所述IO内存输出区用于缓存将要发送给外部访问单元的数据。
5.如权利要求1所述的系统,其特征在于,所述数据服务模块,包括:点对点数据服务模块;
所述IO调度器,用于当需要从与点对点数据服务模块连接的外部访问单元获取数据时,向该点对点数据服务模块发送数据获取请求消息;当需要向与该点对点数据服务模块连接的外部访问单元发送数据时,从所述IO内存区获取需要发送的输出数据,向该点对点数据服务模块发送携带该输出数据的数据发送请求消息;
所述点对点数据服务模块,用于在接收到数据获取请求消息后,从连接的外部访问单元获取输入数据,并向所述IO调度器转发获取的该输入数据;在接收到所述数据发送请求消息后,获取携带的该输出数据,并向连接的外部访问单元转发获取的该输出数据;
所述IO调度器,还用于在接收到所述点对点数据服务模块发送的该输入数据后,将该输入数据缓存到所述IO内存区;
所述数据服务模块,包括:第一周期数据服务模块,所述系统还包括:共享内存;
所述IO调度器,用于周期的从所述IO内存区获取需要发送给与第一周期数据服务模块连接的外部访问单元的输出数据,将该输出数据缓存到所述共享内存中;
所述第一周期数据服务模块,用于周期的从所述共享内存中获取该输出数据,并向连接的外部访问单元转发获取的该输出数据;以及周期的从连接的外部访问单元获取输入数据,并将该输入数据缓存到所述共享内存中;
所述IO调度器,还用于周期的从所述共享内存中获取该输入数据,将该输入数据缓存到所述IO内存区;
所述数据服务模块,包括:第二周期数据服务模块,所述系统还包括:数据库;
所述IO调度器,用于周期的从所述IO内存区获取需要发送给与第二周期数据服务模块连接的外部访问单元的输出数据,将该输出数据缓存到所述数据库中;
所述第二周期数据服务模块,用于周期的从所述数据库中获取该输出数据,并向连接的外部访问单元转发获取的该输出数据;以及周期的从连接的外部访问单元获取输入数据,并将该输入数据缓存到所述数据库中;
所述IO调度器,还用于周期的从所述数据库中获取该输入数据,将该输入数据缓存到所述IO内存区。
6.如权利要求5所述的系统,其特征在于,所述IO调度器,还用于向所述第一周期数据服务模块发送内存定位查询请求,以及接收所述第一周期数据服务模块返回的与连接的外部访问单元交互的数据在所述共享内存中的存储位置;
所述第一周期数据服务模块,还用于在接收到所述内存定位查询请求后,向所述IO调度器返回与连接的外部访问单元交互的数据在所述共享内存中的存储位置。
7.如权利要求6所述的系统,其特征在于,所述IO调度器,还用于在所述向所述第一周期数据服务模块发送内存定位查询请求之前,从所述共享内存的头部区中获取表示共享内存布局版本的版本号,如果获取的该版本号与之前所述第一周期数据服务模块返回的版本号不一致,则执行所述向所述第一周期数据服务模块发送内存定位查询请求的步骤;
所述第一周期数据服务模块,还用于在更新所述共享内存布局版本之后,在所述共享内存的头部区中存储所述共享内存布局版本更新后的版本号;在接收到所述内存定位查询请求后,还向所述IO调度器返回所述共享内存布局版本的更新后的版本号。
8.一种PLC数据传输方法,其特征在于,应用于PLC系统中的IO调度器,所述PLC系统还包括IO内存区和数据服务模块,所述数据服务模块与外部访问单元连接,所述IO调度器加载有与外部访问单元对应的配置信息,所述IO内存区用于缓存所述IO调度器与外部访问单元交互的数据,所述方法,包括:
获取与外部访问单元对应的配置信息;
基于获取的配置信息,按照预设的调度策略,与该外部访问单元连接的所述数据服务模块之间进行消息交互,使得所述数据服务模块采用连接的外部访问单元支持的工业协议,与连接的外部访问单元交互数据。
9.如权利要求8所述的方法,其特征在于,与外部访问单元对应的配置信息,包括:数据缓存信息和访问信息;
所述方法,还包括:
基于所述数据缓存信息,从所述IO内存区获取需要发送给该外部访问单元的输出数据,或者,将来自该外部访问单元的输入数据,缓存到所述IO内存区;
所述基于获取的配置信息,按照预设的调度策略,与该外部访问单元连接的所述数据服务模块之间进行消息交互,包括:
基于所述访问信息,按照预设的调度策略,以及所述访问信息表示的访问方式,与该外部访问单元连接的所述数据服务模块之间进行消息交互。
10.如权利要求9所述的方法,其特征在于,所述数据缓存信息,包括:所述IO内存区的存储位置和数据类型,以及还包括:数据数量和/或数据键值对;
所述访问信息为URL。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310383251.1A CN117850328A (zh) | 2022-05-17 | 2022-05-17 | 一种plc系统、plc数据传输方法及装置 |
CN202210535826.2A CN115047819B (zh) | 2022-05-17 | 2022-05-17 | 一种plc系统、plc数据传输方法及装置 |
CN202310387013.8A CN117850329A (zh) | 2022-05-17 | 2022-05-17 | 一种plc系统、plc数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210535826.2A CN115047819B (zh) | 2022-05-17 | 2022-05-17 | 一种plc系统、plc数据传输方法及装置 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310387013.8A Division CN117850329A (zh) | 2022-05-17 | 2022-05-17 | 一种plc系统、plc数据传输方法及装置 |
CN202310383251.1A Division CN117850328A (zh) | 2022-05-17 | 2022-05-17 | 一种plc系统、plc数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115047819A true CN115047819A (zh) | 2022-09-13 |
CN115047819B CN115047819B (zh) | 2023-05-09 |
Family
ID=83159259
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210535826.2A Active CN115047819B (zh) | 2022-05-17 | 2022-05-17 | 一种plc系统、plc数据传输方法及装置 |
CN202310387013.8A Pending CN117850329A (zh) | 2022-05-17 | 2022-05-17 | 一种plc系统、plc数据传输方法及装置 |
CN202310383251.1A Pending CN117850328A (zh) | 2022-05-17 | 2022-05-17 | 一种plc系统、plc数据传输方法及装置 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310387013.8A Pending CN117850329A (zh) | 2022-05-17 | 2022-05-17 | 一种plc系统、plc数据传输方法及装置 |
CN202310383251.1A Pending CN117850328A (zh) | 2022-05-17 | 2022-05-17 | 一种plc系统、plc数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (3) | CN115047819B (zh) |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11288307A (ja) * | 1998-04-01 | 1999-10-19 | Omron Corp | Faシステム |
CN101042582A (zh) * | 2007-04-25 | 2007-09-26 | 上海电器科学研究所(集团)有限公司 | 带现场总线接口的可编程可配置远程i/o模块 |
CN101344773A (zh) * | 2008-08-13 | 2009-01-14 | 陈华兴 | 一种可编程序控制器及其扩展方法 |
CN201307867Y (zh) * | 2008-11-13 | 2009-09-09 | 上海纳杰电气成套有限公司 | 适用于多种通信协议的通信系统 |
CN101958838A (zh) * | 2010-10-14 | 2011-01-26 | 联动优势科技有限公司 | 数据访问方法及装置 |
US20130002185A1 (en) * | 2011-06-28 | 2013-01-03 | Omron Corporation | Synchronous control apparatus, synchronous control method, synchronous control program, and computer-readable recording medium recording synchronous control program |
JP2014119910A (ja) * | 2012-12-14 | 2014-06-30 | Omron Corp | 情報処理装置およびプログラム |
CN104090519A (zh) * | 2014-06-25 | 2014-10-08 | 深圳市汇川控制技术有限公司 | 一种与plc扩展模块通信的系统及实现方法 |
CN104950855A (zh) * | 2015-06-19 | 2015-09-30 | 湖南正泰水务有限公司 | 一种村镇污水厂及泵站运营监控管理系统及方法 |
CN105049310A (zh) * | 2015-07-30 | 2015-11-11 | 深圳市科为源自动化技术有限公司 | 一种基于plc背板总线协议实现gprs远程通信的智能模块 |
US20150378340A1 (en) * | 2014-06-27 | 2015-12-31 | Omron Corporation | Programmable indicator |
CN206402259U (zh) * | 2017-01-16 | 2017-08-11 | 天芯宜智能网络科技(天津)有限公司 | 一种可扩展多协议自适应控制装置 |
CN107948009A (zh) * | 2017-10-30 | 2018-04-20 | 中国电力科学研究院有限公司 | Plc协议测试的数据交互通道的构建方法及模型 |
CN109413141A (zh) * | 2018-09-07 | 2019-03-01 | 中国电力科学研究院有限公司 | 一种电网主子站间的访问方法与系统 |
CN111698268A (zh) * | 2020-07-16 | 2020-09-22 | 江苏神彩科技股份有限公司 | 一种设备通讯协议转换器 |
CN212134729U (zh) * | 2020-06-30 | 2020-12-11 | 安徽万昇建设工程有限公司 | 一种水利检测用便携式水流速测量装置 |
CN214042097U (zh) * | 2020-12-25 | 2021-08-24 | 傲拓科技股份有限公司 | 一种可自定义协议的plc串口通讯扩展模块 |
CN113721532A (zh) * | 2021-09-07 | 2021-11-30 | 深圳市合信自动化技术有限公司 | 一种plc的cpu的扩展模块多种总线协议自适宜方法 |
CN114072737A (zh) * | 2019-07-03 | 2022-02-18 | 欧姆龙株式会社 | 控制系统、设定装置以及计算机程序 |
-
2022
- 2022-05-17 CN CN202210535826.2A patent/CN115047819B/zh active Active
- 2022-05-17 CN CN202310387013.8A patent/CN117850329A/zh active Pending
- 2022-05-17 CN CN202310383251.1A patent/CN117850328A/zh active Pending
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11288307A (ja) * | 1998-04-01 | 1999-10-19 | Omron Corp | Faシステム |
CN101042582A (zh) * | 2007-04-25 | 2007-09-26 | 上海电器科学研究所(集团)有限公司 | 带现场总线接口的可编程可配置远程i/o模块 |
CN101344773A (zh) * | 2008-08-13 | 2009-01-14 | 陈华兴 | 一种可编程序控制器及其扩展方法 |
CN201307867Y (zh) * | 2008-11-13 | 2009-09-09 | 上海纳杰电气成套有限公司 | 适用于多种通信协议的通信系统 |
CN101958838A (zh) * | 2010-10-14 | 2011-01-26 | 联动优势科技有限公司 | 数据访问方法及装置 |
US20130002185A1 (en) * | 2011-06-28 | 2013-01-03 | Omron Corporation | Synchronous control apparatus, synchronous control method, synchronous control program, and computer-readable recording medium recording synchronous control program |
JP2014119910A (ja) * | 2012-12-14 | 2014-06-30 | Omron Corp | 情報処理装置およびプログラム |
CN104090519A (zh) * | 2014-06-25 | 2014-10-08 | 深圳市汇川控制技术有限公司 | 一种与plc扩展模块通信的系统及实现方法 |
US20150378340A1 (en) * | 2014-06-27 | 2015-12-31 | Omron Corporation | Programmable indicator |
CN104950855A (zh) * | 2015-06-19 | 2015-09-30 | 湖南正泰水务有限公司 | 一种村镇污水厂及泵站运营监控管理系统及方法 |
CN105049310A (zh) * | 2015-07-30 | 2015-11-11 | 深圳市科为源自动化技术有限公司 | 一种基于plc背板总线协议实现gprs远程通信的智能模块 |
CN206402259U (zh) * | 2017-01-16 | 2017-08-11 | 天芯宜智能网络科技(天津)有限公司 | 一种可扩展多协议自适应控制装置 |
CN107948009A (zh) * | 2017-10-30 | 2018-04-20 | 中国电力科学研究院有限公司 | Plc协议测试的数据交互通道的构建方法及模型 |
CN109413141A (zh) * | 2018-09-07 | 2019-03-01 | 中国电力科学研究院有限公司 | 一种电网主子站间的访问方法与系统 |
CN114072737A (zh) * | 2019-07-03 | 2022-02-18 | 欧姆龙株式会社 | 控制系统、设定装置以及计算机程序 |
CN212134729U (zh) * | 2020-06-30 | 2020-12-11 | 安徽万昇建设工程有限公司 | 一种水利检测用便携式水流速测量装置 |
CN111698268A (zh) * | 2020-07-16 | 2020-09-22 | 江苏神彩科技股份有限公司 | 一种设备通讯协议转换器 |
CN214042097U (zh) * | 2020-12-25 | 2021-08-24 | 傲拓科技股份有限公司 | 一种可自定义协议的plc串口通讯扩展模块 |
CN113721532A (zh) * | 2021-09-07 | 2021-11-30 | 深圳市合信自动化技术有限公司 | 一种plc的cpu的扩展模块多种总线协议自适宜方法 |
Non-Patent Citations (2)
Title |
---|
SEYFETTINVADI: "Induction motor control system with a Programmable Logic Controller (PLC) and Profibus communication for industrial plants — An experimental setup", 《ISA TRANSACTIONS》 * |
于国健: "基于 PLC 多协议智能立体车库控制系统的设计", 《现代信息科技》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115047819B (zh) | 2023-05-09 |
CN117850329A (zh) | 2024-04-09 |
CN117850328A (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286503B (zh) | 多注册中心的微服务统一管理方法、装置、设备及介质 | |
CN107835178B (zh) | 一种多协议服务通信方法、装置以及电子设备 | |
JP5172714B2 (ja) | Rssデータ処理オブジェクト | |
CN108055343B (zh) | 用于机房的数据同步方法及装置 | |
US20020161827A1 (en) | Communication system between a programmable logic controller server and a client machine | |
US11940778B2 (en) | Method of commissioning a field device in an industrial system network | |
KR101602099B1 (ko) | 사물인터넷에서 레스트 기반의 서비스 연동 시스템 및 그 방법 | |
US9547633B2 (en) | Methods for extending a selector application programming interface and devices thereof | |
CN102981911A (zh) | 一种分布式消息处理系统及其中的设备和方法 | |
US20140245124A1 (en) | System and method thereof for browser agnostic extension models | |
Gabbrielli et al. | A language-based approach for interoperability of IoT platforms | |
Cupek et al. | FPGA based OPC UA embedded industrial data server implementation | |
CN117077599B (zh) | 一种现场可编程逻辑门阵列视图生成方法及装置 | |
CN115047819B (zh) | 一种plc系统、plc数据传输方法及装置 | |
CN116107999B (zh) | 一种数据库服务和存储系统及方法 | |
Pramsohler et al. | A layered interface-adaptation architecture for distributed component-based systems | |
CN115509647B (zh) | Api接口访问方法、转换方法、装置、设备及存储介质 | |
Zuzak et al. | Arrested development: Guidelines for designing rest frameworks | |
CN115883633A (zh) | 基于Dubbo框架的请求处理方法及装置 | |
CN112783909B (zh) | 数据更新方法、装置、终端设备及存储介质 | |
CN115421693A (zh) | 微前端架构的实现方法、装置、计算机设备和存储介质 | |
KR20070061089A (ko) | 패스토큰 기반 웹 서비스 캐싱 방법 | |
US20150142916A1 (en) | Method for translating entity to things based on web and machine-to-machine communication device | |
Bogomazov et al. | Implementation of Information and Measurement Systems at the Base of Specialized Internet Protocols | |
US20230229509A1 (en) | Configuring a resource for executing a computational operation |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230323 Address after: Room 514-27, No. 6-4, Jiaying East Road, Qinhuai District, Nanjing City, Jiangsu Province, 210022 Applicant after: Nanjing Shengrong Intelligent Technology Co.,Ltd. Address before: 101407 room 103, building 1, yard 33, Yanqi Road, Yanqi Economic Development Zone, Huairou District, Beijing Applicant before: Beijing Wansheng Intelligent Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |