3.3软PLC运行系统数据存储的设计
数据存储的设计是软PLC运行系统实现过程中的关键问题。通过各种数据存储方式,运行系统才能够实现对数据的处理,进而实现对输人输出的控制。设计中,运行系统的数据存储主要有以下三个方面。
3.3.1程序存储区
编译器对编辑器生成的源代码进行检错,并最终生成运行系统可以直接使用的目标代码为了在运行时快速安全的读取目标代码,运行系统在系统初始化的过程中,会开辟一块内存专门用于存储目标代码,在代码加载过程中,系统管理模块会按照指令数据结构,在程序存储区中顺序存储所有指令。在运行系统退出时,系统管理模块会释放这块内存,卸载用户程序。
3.3.2数据存储区
数据存储区用于存储外部输人输出信号状态、内部继电器状态以及定时器状态、计数器状态等数据。这些数据作为全局变量可以由普通任务执行模块、高速任务执行模块、io模块以及系统管理模块访问。数据存储区基本上存储r软PLC运行系统的所有信息,是各个任务模块执行的基础,运行系统根据指令参数指定的寻址方式对数据存储区进行访问。
3.3.3指令的数据结构
本软PLC中,采用指令表语言作为软 PLC编译和执行的语言。指令表程序由许多条指令组成,在软PLC中为了存储和使用指令,需要为指令设计一定的数据结构。一条PLC指令一般包含两部分:操作码和操作数。每条指令包含的操作数有可能不同。一般来说,基本指令包含一个操作数,而功能指令则包含(2-4)个操作数。所以根据这种情况,我们设计软PLC的指令结构如下:
运行系统为每个PLC指令进行了编号,这个编号是指令在编译过程中和执行过程中的唯一标识,任务执行模块就是通过这个编号来识别指令并从指令库中调取相应执行函数,CummandNo就是用来存储指令编号的。InstrInfo用来存储指令相关的一些信息,主要包括每个参数的类型以及其他些信息。在本软PLC中,主要有位地址、字地址、16位常数和32位常数四种参数类型。Param 1-Param4用来存储指令的每个参数。
4软PLC运行系统的测试
4.1 PLC的运行测试平台
为了验证本设计软PLC的功能,我们利用实验平台对其进行测试。实验平台如图5所示。
软件平台为WindowsXP+RTX6.5。硬件平台为PC+固高G0400运动控制卡+固高IO端子卡+LED灯测试板。其中软PLC运行于PC机上,运动控制卡和IO端子卡负责采集输人输出,LED灯测试扳提供输人输出信号。
图5软PLC功能测试实验平台