全国服务热线 15821971992
公司新闻

西门子模块总代理商-南阳

发布时间: 2023-02-15 22:05 更新时间: 2023-10-26 04:00

①输入信号I:输入信号用英文字母I标记,它是指与plc输入端连接的来自外部设备的外部输入信号。在PLC程序中,一般是使用“输入映像”寄存器中的数据,其内容在一个PLC循环周期内保持不变。
    ②输出信号Q:输入信号用英文字母Q标记,它是指与PLC输出端连接的用于控制外部设备的外部输出信号,PLC的输出信号送给输出模块,并通过不同的驱动形式驱动外部负载。在PLC程序中,一般使用“输出映像”寄存器中的数据。输出映像寄存器中的内容可以随着程序的执行不断改变(在多重线圈编程时),但终PLC输出的状态总是程序后的处理结果,因此,对外部来说它也是唯一的。
    ③直接输入/输出PI/PQ(仅S7-300/400):直接输入/输出是在PLC程序中不受PLC循环扫描约束,进行直接采样的输入与直接刷新的输出信号。通过直接输入/输出,可以在PLC程序中不受PLC循环时间的限制,直接对PLC的输入/输出信号进行读/写。
    在直接输入的情况下,PLC程序不再使用输入映像寄存器中的值,而是直接读入当前的瞬时值,而且,PLC执行了直接输入后,并不会影响“输入映像”寄存器中原来的值。在直接输出的情况下,PLC程序不再使用输出映像寄存器中的值,而是直接输出当前的瞬时值,而且,PLC执行了直接输出后,“输出映像”寄存器中的值立即发生变化。
    直接输入/输出的表示方法在S7-200与S7-300/400中有所不同。对于S7-200,使用时只需要在指令代码后增加“I”,如LD变成LDI即可。对于S7-300/400 PLC,不可以在PLC程序中直接以“二进制位”的形式,对PLC的输入/输出信号进行读/写,只能以字节PIB/PQB、字PIW/PQW或双字PID/PQD的形式进行。
    ④模拟量输入/输出AI/AQ:模拟量输入/输出只能以“字”的形式指定,不可以使用二进制位的形式进行编程,模拟量输入/输出的地址只能为AIW**/AQW**。模拟量输入/输出的内容直接保存在PLC的模拟量输入/输出模块中,而不是存放在CPU的RAM中,因此,模拟量输入/输出的实质上也是一种对输入/输出的直接读入与输出。

  在数控机床中,通常用可编程控制器(PLC)对机床开关量信号进行控制。PLC可靠性高,使用方便。但在大多数数控机床,特别是经济型数控机床中,要求的输入输出点数并不多,通常在60点以下,因此,为了降低数控机床成本,在基于工业PC机的数控系统中,可以采用开关量I/O板加外接继电器,配合主机的软件对机床开关进行控制。但如果PC机采用单任务操作系统(如DOS),数控系统的所有任务运行都置于一个总体的消息循环中,软件的模块化和可维护性较差,系统故障的风险相对集中,而且不能充分利用PC机系统资源。而采用非实时多任务操作系统(如Windows)时,Win32API的设计没有考虑到实时环境的开发用途,其系统调用的效率不高,不能满足数控系统PLC控制的实时性要求。

 

    为此,本文提出一种基于RT-Linux操作系统的嵌入式PLC,利用RT-Linux的开放性、模块化和可扩展性的系统结构特性和多线程/多任务的系统环境,在保证实时性的同时,使故障风险相对分散。

 

    数控系统嵌入式PLC的硬件结构

 

    数控系统硬件建立在通用工业PC的开放体系之上,数控系统嵌入式PLC硬件包括:工控机及其外围设备,基于ISA总线的开关量输入输出接口卡,光电隔离模块,继电器输出模块。其结构如图1所示。    

    工控机采用RedHatLinux810+RTLinux311操作系统,数控系统的人机界面、数控代码处理、轨迹规划、参数管理以及PLC控制都通过工控机由软件来实现,不需要独立的PLC控制器,减少了数控系统对硬件的依赖,有利于提高系统的开放性。

 

    I/O输入输出信息通过PC机I/O接口卡实现主机与伺服接口模块和I/O接口模块之间的信息交换,PC机I/O接口卡基于ISA或者PCI总线。

 

 

    RT-Linux的体系结构

 

    RT-Linux是基于Linux系统并可运行于多种硬件平台的32位硬实时操作系统(hardreal-timeoperatingsystem)。

 

    它继承了MERT系统的设计思想,即以通用操作系统为基础,在同一操作系统中既提供严格意义上的实时服务,又提供所有的标准POSIX服务。RT-Linux源代码公开,易于修改,使系统成本降低,源代码的公开使数控系统的开发摆脱了对国外软件公司的依赖,有利于提高数控软件国产化程度。

 

    RT-Linux是基于Linux并可运行于多种硬件平台的多任务实时操作系统。通过修改Linux内核的硬件层,采用中断仿真技术,在内核和硬件之间实现了一个小而高效的实时内核,并在实时内核的基础上形成了小型的实时系统,而Linux内核仅作为实时系统低优先级的任务运行。对于普通X86的硬件结构,RT-Linux拥有出色的实时性和稳定性,其大中断延迟时间不超过15μs,大任务切换误差不超过35μs。这些实时参数与系统负载无关,而取决于计算机的硬件,如在PII350,64M内存的普通PC机上,系统大延迟时间不超过1μs。RT-Linux按实时性不同分为实时域和非实时域,其结构如图2所示。  

实时域在设计上遵循实时操作系统的设计原则,即系统具有透明性、模块化和可扩展性。RT-Linux的实时内核由一个核心部分和多个可选部分组成,核心部分只负责高速中断处理,支持SMP操作且不会被底层同步或中断例程延迟或重入。其它功能则由可动态加载的模块扩充。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控制”)。

 

    图3是基于RT-Linux系统的嵌入式PLC实时任务关系图,其中适配卡输入输出主要是完成数控系统的输入输出,即各轴位置控制命令的输出、I/O的输出、I/O输入以及位置反馈输入,它实际上是数控系统控制卡的设备驱动模块,其优先级在数控系统的各实时任务中为。根据其硬件特征以及运动控制要求,其响应周期为100μs,响应时钟周期由PC机I/O接口卡上的硬件定时器产生。根据RT-Linux系统对硬件中断的响应机制,输入输出控制任务的实时性是可以保证的,这一点在我们的数控系统已经得到验证。

    图3中PLC控制主要是完成数控系统的PLC控制功能,其任务优先级低于适配卡输入输出,同时也低于数控系统的精插补实时任务和位置伺服实时任务。根据通用数控系统的PLC控制要求,确定其响应周期为5ms,响应周期由RT-Linux的软件定时器产生,根据RT-Linux系统的实时多任务调度机制,PLC控制任务的实时性是可以保证的。在实际应用中也得到验证。

 122.png

    嵌入式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信息,然后进行逻辑处理,后将结果写入共享内存供适配卡输入输出模块读取并输出。

 

    结论

 

    目前该嵌入式PLC模块已成功应用于清华大学精仪系制造工程研究所THHP-III数控系统(基于RedHatLinux8.0+RTLinux3.1)中,该模块可以满足对普通数控系统和加工中心PLC控制要求。


联系方式

  • 地址:上海杨浦 上海市松江区广富林路4855弄88号3楼
  • 邮编:200093
  • 电话:15821971992
  • 经理:聂聪
  • 手机:15821971992
  • 传真:021-33556143
  • QQ:2724917714
  • Email:2724917714@qq.com