计算机的软件系统广泛地应用了模块化的设计原理和方法。将设计系统从结构上分解成许多相互独立的模块,每个模块具有特定的功能属性,分别设计各个部分。然后按一定方式进行组合,构成整体的软件系统。模块化设计通常依据系统所完成的功能来划分模块,各模块的功能应保持相对的独立性。模块化程序结构灵活巨适应性强,便于系统的重构、修改和扩充[106]。这种思想应用于Soft-PLC的设计符合了开放式系统设计的要求。
本书参照国际标准IEC61131-3开发了一套应用于开放式软件数控系统的Soft-PLC多任务系统。该系统采用模块化设计,模块结构如图4-7所示,其中系统管理模块的任务是在运行每个PLC程序之前设定系统参数、建立系统环境,在PLC扫描周期内负责调度系统多任务线程,以及监测PLC系统运行状况并作出及时响应的系统模块。应用程序执行模块的任务是依次读取程序存储区内的指令,并调用相应的执行函数完成用户所要求的逻辑控制、运动控制功能。输入输出接口模块的任务是按特定的总线协议读写总线上标准I/O模块的接口状态数据,并与系统内部全局I/O数据存储区进行数据通信的交互。通信模块提供与其他系统(第三方设备)如其他PLC系统、CNC等进行数据交换的功能。应用程序、数据存储模块是Soft-PLC系统中用于管理用户程序存储区及数据存储区的功能模块;Soft-PLC运行起始阶段程序、数据存储模块向系统申请程序、数据存储内存;PLC扫描运行阶段向其他模块任务提供访问程序、数据的接口;在Soft-PLC系统结束之前释放申请的系统内存。人机界面功能模块是提供操作者、控制器和机器(过程)三者之间的互动,该模块可以形象地显示控制系统及机器的运行状态,用户根据反馈信息来操作系统的运行步骤。
系统运行一个新的PLC程序,对应有一组系统管理模块、应用程序存储模块、数据存储模块以及应用程序执行模块,这些模块集合对应于国际标准IEC61131-3PLC软件模型中的每一个资源。在Visuai C++开发环境下,采用C++语言面向对象方法将Soft-PLC系统各功能模块封装成不同类,提供接口函数来实现模块间的通信。运行用户程序时,系统首先会实例化程序运行所需要的资源模块,建立内部的通信机制。当然,系统会建立全局数据区供不同程序、功能模块、系统资源等相互之间访问。其实Soft-PLC系统中仅创建一个I/O接口模块和一个通信模块,这两者与各资源中模块的通信就是通过全局数据区变量实现的。
(www.daowen.com)
图4-7 Soft-PLC系统的基本功能结构模块
按照国际标准IEC61131-3PLC软件模型,资源对应着可以执行用户程序的处理能力,在一个资源内可以有一个或多个任务。对应于多个任务,我们需要为每个任务指定不同的执行时间和优先权。在某一时刻,哪个特定的任务在执行,或者说哪个任务拥有对CPU的控制权,取决于任务调度机制、各任务的优先权、执行时间以及系统中当前时刻其他任务的就绪和等待时间。不同的多任务系统划分及调度机制对系统行为的影响是巨大的,表现为即使硬件资源相同也会出现多任务特性的巨大差异。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。