其它功能则由可动态加载的模块扩充。RT-Linux把不影响系统实时性的操作(即非实时域的操作)都留给了非实时的Linux系统完成。基于多任务环境的Linux为软件开发提供了丰富的系统资源,如多种进程间通讯机制,灵活的内存管理机制。
嵌入式PLC的设计及实现
嵌入式PLC的模块组成
数控系统的PLC控制模块实时性要求较高,因而必须在系统的实时域内运行。根据通用数控系统的PLC控制以及数控系统软件模块化设计的要求,将数控系统的PLC控制模块作为RT-Linux系统的实时任务之一,其优先级和调用周期取决于数控系统各任务的实时性要求以及控制要求的响应时间。PLC控制模块主要完成数控系统的逻辑控制,而被控制的输入输出也就是I/O的输入输出由PC机I/O接口卡输入输出模块来完成,即完成数控系统的PLC控制需要两个RT-Linux实时任务,如图3所示,这两个任务分别为RT-Task1(以下称“适配卡输入输出”)、RT-Task2(以下称“PLC控制”)。
6ES7 321-1BH02-0AA0 | 开入模块(16点,24VDC) |
6ES7 321-1BH02-9AJ0 | 开入模块(16点,24VDC)组合件 (6ES7 321-1BH02-0AA0+6ES7 392-1AJ00-0AA0) |
6ES7 321-1BH10-0AA0 | 开入模块(16点,24VDC) |
6ES7 321-1BH50-0AA0 | 开入模块(16点,24VDC,源输入) |
6ES7 321-1BH50-9AJ0 | 开入模块(16点,24VDC,源输入)组合件 (6ES7 321-1BH50-0AA0+6ES7 392-1AJ00-0AA0) |
6ES7 321-1BL00-0AA0 | 开入模块(32点,24VDC) |
6ES7 321-1BL00-9AM0 | 开入模块(32点,24VDC)组合件 (6ES7 321-1BL00-0AA0+6ES7 392-1AM00-0AA0) |
6ES7 321-7BH01-0AB0 | 开入模块(16点,24VDC,诊断能力) |
6ES7 321-1EL00-0AA0 | 开入模块(32点,120VAC) |
6ES7 321-1FF01-0AA0 | 开入模块(8点,120/230VAC) |
6ES7 321-1FF10-0AA0 | 开入模块(8点,120/230VAC)与公共电位单独连接 |
6ES7 321-1FH00-0AA0 | 开入模块(16点,120/230VAC) |
6ES7 321-1FH00-9AJ0 | 开入模块(16点,120/230VAC) (6ES7 321-1FH00-0AA0+6ES7 392-1AJ00-0AA0) |
6ES7 321-1CH00-0AA0 | 开入模块(16点,24/48VDC) |
6ES7 321-1CH20-0AA0 | 开入模块(16点,48/125VDC) |
6ES7 321-1BP00-0AA0 | 光电隔离,每组 16,64 DI,DC 24V,3MS,漏/源 |
6ES7 322-1BP00-0AA0 | 光电隔离,每组 16,64 DO,DC 24V,0.3A(源),总电流2A/组 |
6ES7 322-1BH01-0AA0 | 开出模块(16点,24VDC) |
6ES7 322-1BH01-9AJ0 | 开出模块(16点,24VDC) (6ES7 322-1BH01-0AA0+6ES7 392-1AJ00-0AA0) |
6ES7 322-1BH10-0AA0 | 开出模块(16点,24VDC)高速 |
6ES7 322-1CF00-0AA0 | 开出模块(8点,48-125VDC) |
6ES7 322-8BF00-0AB0 | 开出模块(8点,24VDC)诊断能力 |
6ES7 322-5GH00-0AB0 | 开出模块(16点,24VDC,独立接点,故障保护) |
6ES7 322-1BL00-0AA0 | 开出模块(32点,24VDC) |
6ES7 322-1BL00-9AM0 | 开出模块(32点,24VDC) (6ES7 322-1BL00-0AA0+6ES7 392-1AM00-0AA0) |
6ES7 322-1FL00-0AA0 | 开出模块(32点,120VAC/230VAC) |
6ES7 322-1BF01-0AA0 | 开出模块(8点,24VDC,2A) |
6ES7 322-1FF01-0AA0 | 开出模块(8点,120V/230VAC) |
6ES7 322-5FF00-0AB0 | 开出模块(8点,120V/230VAC,独立接点) |
6ES7 322-1HF01-0AA0 | 开出模块(8点,继电器,2A) |
相同的用户程序
相同的数据块
相同的过程图像内容
相同的内部数据,例如定时器、计数器、位存储单元等
这意味着,这两个设备的更新操作始终完全一样,并可以在出现故障时独立地继续执行控制功能。
I/O 工作于冗余模式时,其结果将是:
在没有故障的工作期间,两个模块均处于工作状态,即,在存在冗余输入的情况下,例如通过两个模块读入的共用传感器(也可以设置两个传感器)的信号,会对其结果进行比较,以将一致性的值提供给用户以进一步处理。对于冗余输出来说,由用户程序计算出的值通过两个模块来输出。
如果出现了故障,例如输入模块中有一个或者两个均出现了故障,则不再寻址故障模块,且对故障进行报告处理,此后,仅使用未出现故障的模块继续工作。联机修理工作完成之后,又可以寻址两个模块。
对于无重启切换,必须实现两个子单元的同步。
S7-400H采用“事件驱动同步”技术。
同步操作伴随着导致两个子单元内部状态出现差异的每个事件而进行。这些事件的发生情况例如有:
直接访问 I/O
中断、报警
更新用户时间,或
使用通信功能更改数据。
同步由操作系统自动完成,程序编制期间无需处理。
自检
S7-400H 可执行大量自检。这涉及到以下部分的检测工作:
中央控制器的连接。
CPU
处理器/ASIC
存储器
每个检测到故障都将被报告。
启动时自检
启动时,每个子单元都会完整地执行全部自检功能。
循环工作期间的自检
完整的自检需要多个循环。每个循环仅执行一小部分的自检,因此,施加至物理控制器上的负荷很小。