软PLC模拟运行系统是软PLC的核心。通常的开发系统先将编写的PLC源程序编译成中间代码,然后运行系统的编译器再将中间代码翻译为与硬件平台相关的机器可执行代码并运行后,即可输出结果实现逻辑控制目的。本文的软PLC模拟运行系统是以开发系统生成的地址文件address.c为输入。
硬PLC是按巡回扫描原理工作的。在每个扫描周期内,它都经过输入采样、执行用户程序、输出刷新三个阶段。PLC在工作时建立1/10, 映像区,所有输入采样的现场信息都存储到输入映像区中供程序执行时取用,所有输出结果都存放到输出映像区中,最后集中进行输出刷新。软PLC的工作原理亦是如此。
本文采用windows提供的定时器实现巡回扫描。程序开发运行时,用函数Set Time设置定时器;程序结束时,用函数KillTimer消除定时器。巡回扫描功能在WM_TIMER信息映射的Ontimer函数里实现。只要定时器不取消,PLC程序就一直地循环执行,输出结果也在实时变化。
3 软PLC性能测试
软PLC优于硬PLC的主要特点是扫描时间短、执行速度快。本文的软PLC系统把梯形图扫描语言变成了结构化+ 语言,采用if语句实现所有逻辑。因结构化if语句执行速度非常快,故软PLC的执行速度自然地得到了提高。为了验证这一特点,本文采用数字示波器结合)CL 实时子系统提供的测量时间的实时函数: RtEablePortIO,测量了1800多行if语句的执行时间。测试结果为328us(而一般的PLC扫描时间为几毫秒到几十毫秒)。可见,将梯形图转化为12 语句后,可使PLC的执行速度大大提高。
4 结束语
数控机床中的PLC是连接NC和机床的桥梁或纽带。本文开发的软PLC系统,把梯形图转化为C程序,将扫描执行转化为编译执行,克服了硬PLC的缺点,增强了通用性和兼容性,提高了性能价格比;这对发展开放式数控系统有着重要意义。