ES0350.M1A05L.27N0 艾默生
ES0350.M1A05L.27N0 艾默生
ES0350.M1A05L.27N0 艾默生
PLC控制主要是完成数控系统的PLC控制功能,其任务优先级低于适配卡输入输出,同时也低于数控系统的精插补实时任务和位置伺服实时任务。根据通用数控系统的PLC控制要求,确定其响应周期为5ms,响应周期由RT-Linux的软件定时器产生,根据RT-Linux系统的实时多任务调度机制,PLC控制任务的实时性是可以保证的。在实际应用中也得到验证。
嵌入式PLC的实时任务模块数据通讯
完成数控系统PLC控制的两个实时任务之间由于需要输入输出的数据量(一般情况下为64输入,64输出,但输入输出根据需要还可以扩展)不太大,因而采用共享内存的通讯方式,在适配卡输入输出和PLC控制
两个实时任务之间开两块共享内存,一块用于适配卡向PLC控制传输I/O口状态信息,另一块用于PLC控制向适配卡输入输出任务传输经PLC逻辑处理后的控制信息。
在这里,两个实时任务间不采用RT-FIFO进行通讯的原因在于这两个实时任务间通讯的数据量不是很大,而这两个实时任务运行周期差别较大,采用RT-FIFO传输数据,为了避免FIFO的阻塞,相应地要增加两个任务间的协调机制,这样的通讯效果未必比采用共享内存好,而且共享内存的读写速度比FIFO相对较快。
嵌入式PLC的实时任务的实现
适配卡输入输出为动态可加载模块,适配卡输入输出模块(任务)以100μs为周期的硬件定时中断,完成各轴位置控制指令和I/O的输出、各轴位置反馈值和I/O的输入,适配卡输出值来自于位置伺服任务和PLC控制任务,输入值来自于适配卡的输入接口。PLC控制模块(任务)同样也是一个动态可加载模块,它以5ms的软定时,周期性地从它与总控模块通讯的RT-FIFO读取控制信息(如M指令,S指令及T指令),同时从它与适配卡输入输出模块通讯的共享内存中读取I/O信息,然后进行逻辑处理,**后将结果写入共享内存供适配卡输入输出模块读取并输出。