本发明涉及可编程控制器(plc),具体涉及一种松耦合软plc的高时间精度顺序指令输出方法。
背景技术:
1、可编程控制器(plc)广泛应用于机械、石油、风电、水电、国防、交通等行业,在工业自动化领域发挥举足轻重的重用。plc可分为硬plc和软plc,硬plc通常由cpu、存储器及i/o系统构成,运行过程中cpu采用单线程工作模式,周期循环执行自诊断、通讯、输入采样、用户程序执行、i/o刷新动作。软plc普遍采用通用处理器+通用嵌入式实时操作系统的设计模式,利用操作系统提供的多任务控制能力,完成对i/o数据的快速处理,从而实现硬件plc的各项功能。相比硬plc,软plc采用更加开放的体系结构,具有更强大的网络通讯能力,控制功能更完备,i/o扩展能力更强,是未来plc控制器的重点发展方向。与此同时,由于软plc的实时操作系统执行多任务调度过程存在一定不确定度,控制指令的实时性及执行精度稍逊于硬plc。
2、在诸多大型分布式控制系统(如风电、水电、交通、运动控制系统等应用场景)中,往往要求分布于各个控制节点的输出端子能够按照预定的时间序列精确执行特定指令,相邻两条指令执行时间间隔晃动范围尽可能小,但现有的方法均不能达到要求。
技术实现思路
1、本发明的目的是提供一种松耦合软plc的高时间精度顺序指令输出方法,以解决在诸多大型分布式控制系统中,相邻两条指令执行时间间隔晃动范围太大,导致分布于各个控制节点的输出端子不能按照预定的时间序列精确执行特定指令的技术问题。
2、为了达到上述目的,本发明提供了一种松耦合软plc的高时间精度顺序指令输出方法,所述软plc中的cpu模块包括控制逻辑进程及通信进程,cpu模块与背板各i/o模块间采用主从通信方式,cpu模块的通信进程为通信主站,各i/o模块为通信从站;其特殊之处在于,包括以下步骤:
3、步骤1、cpu模块中的控制逻辑进程采用循环执行模式,每个循环内依次执行:
4、1.1、输入采样过程:扫描现场各输入模块的状态和数据,并存入i/o映像区中;
5、1.2、控制程序执行过程:顺序解析用户程序中的各条指令,并将计算结果存入i/o映像区中;
6、1.3、输出刷新过程:将i/o映像区的输出状态传送至各输出端子;
7、步骤2、各输出端子接收到i/o映像区的输出状态后,采用中断通信方式,触发cpu模块的通信进程执行中断服务程序,通信进程负责实现cpu模块与背板各i/o模块的主从通信,通信进程每次的执行过程如下:
8、2.1、配置通信主站及通信从站信息:根据软plc的网络拓扑结构,为每个i/o模块分配独立id,并确立通信主站与通信从站的通信协议;所述通信从站包含多个输出模块;
9、2.2、通信主站按照所述通信协议负责将控制指令、通信数据、通信地址打包为通信数据包;
10、2.3、通信主站通过背板总线将打包的通信数据包对应分发至各i/o模块的id;
11、步骤3、软plc的各输出模块与cpu模块同样采用中断通信方式,实现控制指令的最终输出,执行过程如下:
12、3.1、软plc的各输出模块实时监测背板总线上是否有分发到对应id的通信数据包;
13、3.2、当输出模块接收到通信数据包时,按照通信协议拆分、解析通信数据包,分离出控制指令、通信数据及通信地址;
14、3.3、输出模块将解析获取的通信数据写入对应通信地址,并完成控制指令的隔离输出。
15、进一步地,所述软plc采用通用处理器+通用嵌入式实时操作系统的设计模式,其逻辑控制功能支持多任务并行执行。
16、进一步地,所述软plc的处理器为单核或者多核。
17、进一步地,步骤2.1中,所述通信协议为modbus、ethercat或can等。
18、进一步地,所述cpu模块与i/o模块间采用松耦合连接方式。
19、进一步地,负责控制器与上位机通信的通信进程与负责控制器内部通信的通信进程之间,以及负责控制器与上位机通信的通信进程与负责用户程序执行的控制逻辑进程之间采用socket通信。
20、本发明的有益效果:
21、1、本发明提出的松耦合软plc的高时间精度顺序指令输出方法,在不更改plc控制系统硬件体系结构的前提下,通过在软plc的cpu模块的通信进程与控制逻辑进程间以及通信进程(通信主站)与各i/o模块(通信从站)间采用中断通信方式,可有效提升各类型松耦合软plc的顺序指令输出精度,具有实时性高、可移植程度强、成本低廉等特点。
22、2、本发明有效避免了cpu模块内部通信进程以及i/o模块(通信从站)轮询周期时间的不确定性对顺序指令输出精确度的影响,该方法对i/o模块数量、规模以及plc系统内部通信协议类型等没有限制和约束,具有良好的可扩展性。
23、3、本发明利用软plc内的cpu模块以及各i/o模块的中断机制有效提升了cpu内部进程间通信以及cpu模块与i/o模块间主从通信的时间确定度,实现了顺序指令的高时间精度输出,不需要对现有plc控制系统硬件结构进行修改,改造成本低廉,系统兼容性强,适用于各类松耦合软plc控制系统。
24、4、相比采用专用soc+实时运行软件的硬plc,软plc的产品通用性和兼容性好且生产成本较低,开发周期短。
25、5、本发明中cpu模块的逻辑控制任务及控制器底层通信任务分处两个进程,市面上的此类软plc的通信进程与逻辑控制进程普遍通过共享内存方式实现进程间通信,假设通信进程的轮询周期δt,此时plc的两条时间间隔为δs的顺序指令输出时间抖动为-δt--+δt,两条相邻指令实际输出间隔范围为δs-δt---δs+δt,本发明中通信进程与逻辑控制进程采用中断通信方式,对于相邻的固定时间间隔的两条输出指令,每条指令在通信进程内部的中断延迟时间近似相同,为此两指令的时间抖动近似为0,有效提升了顺序指令输出时间间隔的确定度。
26、6、本发明中为了提升软plc的可扩展性,i/o模块与cpu模块之间采用松耦合连接方式,cpu的通信进程与各i/o模块间采用较为复杂的通信协议(如modbus、ethercat或者can总线等),支持一主多从通信模式,对i/o模块数量、规模、类型没有限制和约束,可适用于各类型大型分布式控制系统。
27、7、现有的各类软plc的通信从站普遍采用周期轮询模式,按照固定周期δp扫描总线上的数据包并进行解析,对于plc内部时间间隔为δs的两条顺序指令,因从站周期轮询导致指令输出时间的抖动范围为-δp--+δp,对应两条相邻指令实际输出间隔范围为δs-δp---δs+δp,本发明中通信主站与各通信从站采用中断通信方式,当通信从站检测到总线上存在发送至自己的数据包,即刻执行中断服务程序,对于相邻的固定时间间隔的两条输出指令,每条指令在通信从站内部的中断延迟时间近似相同,为此两指令的时间抖动近似为0,进一步提升了顺序指令输出时间间隔的确定度。