广告招募

软PLC运行系统的任务划分及实现

2026年03月20日 09:41:18      来源:东莞市宇匠数控设备有限公司 >> 进入该公司展台      阅读量:0

分享:

3.2软PLC运行系统的任务划分及实现

2.4节可知,本软PLC运行系统由通信接口模块、系统管理模块、程序执 行模块、存储模块和I/O接口模块五个模块组成,每个模块用于完成指定功能。 根据软PLC运行系统的工作原理对每个模块的任务进行了划分:

与软PLC开发系统的通讯任务、与软CNC的通讯任务、与HMI界面的通 讯任务、普通程序执行任务、快速程序执行任务、用户程序存储任务、指令存储 任务、数据存储任务和I/O读、写任务以及系统管理任务,软PLC运行系统任 务组成如图3.1所示。

3. 2. 1系统管理模块

系统管理模块是软PLC系统的控制核心。软PLC运行系统启动后首先

进入系统管理模块,利用InitialPLCObjectsG函数定义并初始化PLC全局对象, 接着创建任务管理线程JobSchedulerThread和其它任务线程,在任务管理线程 JobSchedulerThread调度下各任务线程顺序执行。当用户程序循环结束后,系统 管理模块删除所有任务对象、事件句柄、释放内存空间等计算机资源,对应工作 流程如图3.3所不。

3. 2. 2程序执行模块

程序执行模块通过解释和执行PLC指令函数完成相应的逻辑运算,分为快 速程序执行和普通程序执行两个子模块。前者用于处理实时性要求较高的信号, 如急停信号、限位开关信号等等,执行周期5ms;后者则用来处理一般的循环扫 描任务,执行周期20ms它们是两个独立的任务线程,执行指令函数的流程相 同:先从指令存储模块读取PLC指令、判断指令类型,接着调取软PLC指令函 数进行运算,最后将运算结果保存在数据存储模块,然后循环执行指令,当执行 END指令后退出循环,完成一次用户扫描程序,执行流程如图3.4所示。


3. 2. 3通讯接口模块

通讯接口模块是数控应用程序之间通讯的通道用于软PLC运行系统与开 发系统、软CNC人机界面HMI以及其它第三方程序的数据交换。其中软PLC

运行系统与开发系统采用COM^COM方式进行通讯,即开发系统作为客户端向 运行系统发送用户程序,运行系统作为服务器端接收用户程序并反馈软PLC的 运行状态。

PLC运行系统与软CNC人机界面HMI是数控程序中的三个进程,它们 通过访问软PLC运行系统创建的共享内存区PLC_CNCBufferPLC_HMIBuffer 进行数据交换。由于软PLC运行系统和软CNC都是运行在RTSS环境下两个进 程,所以利用RTX提供的IPC (进程通讯对象)可实现数据通讯任务;而人机 界面HMI是运行在Win32环境下的非实时应用程序,它与软PLC运行系统是不 同控制内核下的两个进程,由于Win32进程优先级低于任何一个RTX进程,所 以在软PLC运行系统启动后人机界面HMI进程无法获得CPU资源将数据写入 共享内存PLC_HMffiuffer因此需要解决Win32程序与RTX程序CPU资源的 分配问题,通常有以下两种方法:

定时分配CPU资源

定时分配CPU资源是指定一个事件,一旦触发该事件RTX子系统就中断在 正在运行的软PLC任务线程,将CPU资源让给Win32环境下的应用程序,使人 机界面进程将数据写入共享内存PLC_HMffiuffer中。中断事件对象由软PLC运 行系统利用函数RtCreateEvent创建,中断等待的时间由用户设置。

使用互斥体对象

互斥体对象是操作系统内核的一种数据结构,只允许获得该对象的任务线程 访问共享资源。利用互斥这一特性,首先在人机界面HMI程序中利用函数 RtCreateMutexG创建一个互斥体对象,虽然软PLC运行系统的优先级高于人机 界面HMI进程,但软PLC任务线程无法访问共享内存PLC_HMIBuffer中数据, 必须等待HMI线程调用RtCloseHandleO函数释放掉互斥对象句柄 h_mutexHMIPLC后才能访问该区域,在等待的这个时间片内Win32应用程序获 得CPU资源,人机界面HMI线程将数据写入共享内存PLC_HMIBuffer,并读取 软PLC给人机界面的数据,显示在人机界面上。

相比较定时分配CPU资源,使用互斥体对象等待的时间由操作系统分配, 占用软PLC循环扫描的时间较少,因此本软PLC运行系统采用互斥体对象实现 软PLC与人机界面HMI之间的通讯任务。

由于通讯过程类似,这里仅以软PLC运行系统与人机界面HMI的通讯为例 说明其执行流程,如图3.5所示。

3. 2.4 I/O接口模块

I/O接口模块是软PLC系统与外部I/O输入输出模块进行数据交换的通道用于将I/O输入输出模块采集到的机床信号读入软PLC输入映像区同时将输 出映像区中状态输出给I/O端口。其执行过程分为两步:,根据软PLC数 据存储区中I/O端子分配表与对应物理节点变量建立映射关系,完成端口配置; 第二,调用I/O接口模块的读写任务线程,在输入刷新和输出刷新阶段完成与外 部I/O输入输出模块的数据交换。

PLC系统采用SoftSERCANS被动式主站卡作为作为数控系统的接口,所 以I/O输入输出模块先将采集到的数据信息存储在SERCOS I/O从站,由从站向 主站发送中断请求,将数据包发送给主站,软PLCI/0接口模块通过读写 SoftSERCANS被动式主站卡双口存储区中数据与外部I/O模块进行数据交换, 本文第四章对软PLC控制系统接口进行了详细的分析,这里只给出它们数据传递过程。

3. 2. 5存储模块

存储模块存储了软PLC运行系统中所有的数据、操作指令和数据地址 表示为存储模块=数据地址+数据+操作指令因此分为用户程序存储 区、数据存储区和指令存储区。

在执行用户程序前,程序执行模块将每一个软元件的信息存储到指令链表中 供执行程序时调用。

数据存储区

数据存储区保存了所有软元件的状态,按照数据的来源分为:输入映像区(I)、 输出映像区(Q)PLC内部存储区(R)定时器区(T)计数器区(A)本地通讯 存储区(L)HMI通讯存储区(P)CNC通讯存储区(C),每个区域所包含的信息 见表3.1

3.1PLC运行系统数据存储区 Table 3.1 Data store of SoftPLC running system

数据类型

标识符

含义

功能

unsigned char

I

输入映像区

存储所有输入软元件的状态

unsigned char

Q

输出映像区

存储所有输出软元件的状态

unsigned char

R

内部存储区

存储软PLC内部的数据

unsigned char

T

定时器区

存储定时器的数据

unsigned char

A

计数器区

存储计数器的数据

unsigned char

L

本地通讯存储区

存储与Sercos的通信数据

unsigned char

P

HMI通讯存储区

存储与人机界面HMI的通信数据

unsigned char

C

CNC通讯存储区

存储与软CNC的通信数据


PLC运行系统以结构体的形式为每个存储区域分了配内存空间,除软PLC 内部存储区、输入映像区、输出映像区外,其余每个存储区域有256个软逻辑位供外部的物理元件使用。以本地通讯存储区为例它存储了软PLCSercos 通讯数据。

(3)指令存储区

指令存储区存储了软PLC系统的全部指令函数,当执行用户程序时,系统 从指令库中调取操作函数完成对操作数的运算,有关软PLC指令的设计与实现 详见本章第四节。

本文采摘自“五轴数控加工中心软PLC控制系统的研究”,因为编辑困难导致有些函数、表格、图片、内容无法显示,有需要者可以在网络中查找相关文章!本文由伯特利数控整理发表文章均来自网络仅供学习参考,转载请注明!

版权与免责声明:
1.凡本网注明"来源:全球供应商网"的所有作品,版权均属于全球供应商网,转载请必须注明全球供应商网。违反者本网将追究相关法律责任。
2.企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3.本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。 4.如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系。