基于Linux系统的软PLC设计

发布者:达文西happy最新更新时间:2007-11-12 来源: EDN China关键字:周期  编程  兼容  硬件 手机看文章 扫描二维码
随时随地手机看文章
引言

可编程控制器(PLC,Programmable LogicController)经过几十年的发展,现在已经成为了最重要、最可靠、应用场合最广泛的工业控制微型计算机。然而,人们在使用过程中也逐渐发现了传统PLC的缺点:兼容性差,由于生产厂家众多,各种机型互不兼容,没有统一的标准,难以构造统一的硬件结构;封闭、扩展能力差:产品能力的功能实现依赖硬件;对使用者的要求高:现行的PLC 产品,其编程方式要求使用者对PLC的硬件结构、电器原理、编程指令都要有相当的了解;可维护性差:PLC 出现故障时需要专业人员用专业工具进行检测和维修;成本较高,传统PLC 被几家厂商所垄断,性价比增长缓慢。这些问题都制约着传统PLC 的发展。近年来,工控领域的不少研究人员一直在寻求着解决这些问题的途径。随着计算机软硬件技术的发展及PLC 国际标准IEC61131-3的制定,在计算机上以软件的方式来实现PLC 成为了发展的热点,这也就是软PLC(Soft PLC)。

软PLC介绍

软PLC,也叫软逻辑,是一种基于PC 机开放结构的控制装置。软PLC 综合了计算机和PLC 的开关量控制、 模拟量控制、数学运算、数值处理、通信网络等功能,通过一个多任务的控制内核,提供了强大的指令集、快速而准确的扫描周期、可靠的操作和可连接的各种I/O 系统及网络的开放结构。软PLC 提供了硬PLC 的各种功能,同时具备了PC 的各种优点。

基于PC 平台的软PLC 由于无需专门的编程器,因而可以充分利用PC 机的软硬件资源,直接采用梯形图或指令语言编程,并具有良好的人机界面,在数控系统中正逐渐取代硬件PLC,PLC 编程系统也正在逐步转向占据软件市场的PC 机。软PLC 技术发展的一个重要条件就IEC61131-3 标准的制定。

20 世纪90 年代,IEC(国际电工委员会)颁布了IEC61131 国际标准,它的内容涵盖了PLC 整个生命周期的各个部分。IEC61131-3 是PLC 的语言标准,它定义了5 种PLC 编程语言的规范,其中结构化文本(ST)和指令表(IL)为文本语言,而顺序功能图(SFC)、梯形图(LD)、功能模块(FBD)为图形语言。同时,标准还允许在同一个程序中混合使用多种语言。IEC61131-3 标准由IEC 的SC65BW7工作组制定,它包括来自不同的PLC 制造商、软件公司和用户代表,实现了统一的编程标准。相对传统PLC,软PLC 解决了兼容性差、通用性差等问题,具有了多方面的优势:

(1) 硬件体系结构不再是封闭的,用户可以自己选择合适的硬件来组成满足要求的PLC。

(2) PC 机厂家的竞争激烈使得基于PC 机的软PLC 性价比得以提高。

(3) 软PLC 不仅可以实现连接到私有的PLC 网络中,而且可以通过PC 连接到计算机网络上。

(4) 由于软PLC 是基于IEC61131-3 标准的,因此在掌握标准后就可以容易的进行开发了。

由于软PLC 具有兼容性、通用性、性价比高、易于与网络连接、编程方便等优点。因而,目前世界各国都在进行软PLC 的研究。国际上,已经有了一些比较成熟和影响比较大的产品:如德国KW -sofeware 公司的MULTIPROG wt32、倍福TwinCAT控制软件TwinCAT PLC、法国CJ International公司的ISaGRAF 软件包、PCSoft International 公司的WinPLC、美国Wizdom Control Intellution 公司的Paradym-31 等等。而国内有关部门和工控方面的公司也正在着手研究开发具有自主版权的中文软PLC产品。

软PLC设计平台

硬件工作平台

软PLC 的期待硬件工作平台为工控机等PC 工业微机平台和嵌入式PC 平台。本设计因需要应用于嵌入式的数控系统中,所以采用了嵌入式PC 平台。嵌入式PC 是将PC 机的主要硬件集中在一张信用卡大小的主板上,将操作系统和应用软件存储在Flash芯片中。嵌入式PC 与标准PC 全兼容,采用与标准PC 相同的硬件结构和软件结构。因而,嵌入式PC在理论上能完成与普通PC 系统的工作。因而,我们可以在普通PC上做好设计和开发,再将软件移植到嵌入式PC 上。

嵌入式PC 包括单板计算机(SBC)、PC/104 计算机和饼干机,本设计采用的是嵌入式PC104 计算机。嵌入式PC/104 组件尺寸小,标准化,模块化程度高,采用层叠式结构,通过在CPU 板的基础上堆叠扩展板构成一个完整的计算机系统。PC104 的扩展板齐全,包括了网卡、数字I/O 卡、A/D 卡等。在PC104 上构造的系统即嵌入式软PLC 可扩展性好,标准化和模块化程度高。

现今PC104 的硬件水平可以达到P2 或者P3 一级,CPU 速度足够快,内存可到128M,程序存储空间可以选用CF 卡作为硬存储空间,可以达到128M,且可通过PC104 接口扩展其硬件I/O 能力,可增加软PLC 的I/O 口,丰富的硬件资源完全可以满足运行软PLC 的需要。这也使得设计时完全可以在普通PC 上,在Linux 内核下对软PLC 的各个模块进行调试,调试成功再移植到PC104 组件上运行。

软件平台

目前,大多数软PLC 分别以Windows, DOS 和Linux 系统为操作平台。早期的基于PC 的软PLC 采用的较多的是DOS 系统,这类软件由于运行DOS 环境下,可以轻松实现其实时控制的要求,但由于DOS 环境是单任务处理方式,使得PC 的潜力得不到充分发挥,系统的功能和灵活性也受到限制。而Windows 具有操作界面良好、程序开发相对容易、多任务等优点,但Windows 操作系统并不是一个理想的实时操作系统,且Windows 操作系统是收费的,这将大大增加开发应用的成本。因而,本设计配合数控系统的需要选用的是Linux 系统为操 作平台,基于Linux 内核模块的Rtlinux 是一个免费的、开放源代码的实时操作系统。

软PLC模块设计

本设计的软PLC 基于嵌入式PC104 计算机,建立在Linux 操作系统之上,软件的设计采用了模块化设计。每个模块都专职一项功能,每个模块都是一个进程。软PLC 全局变量是所有模块的公共数据,由配置文件设定。各个模块通过全局变量进行通信,各个模块的私有数据不包含在配置文件内。全局变量在每个模块都有副本,各个模块通过副本的数据对本模块进行运算,当循环一次运算后,就更新到全局变量,这样就实现了各个模块之间的通信。每个模块对全局变量的读写权限不一样的,只有对全局变量具有写权限的模块才可以更新全局变量里的数据。每个模块作为一个进程,进程之间的通信采用的是共享内存进行通信。软PLC 各模块之间的结构框图如图1 所示:

(1) 主程序(main program),启动软PLC,将首先运行主程序,主程序将读取配置文件上的内容,并运行配置文件上所设定的模块。

(2) 配置文件(configurefile),在软PLC 中具有核心的地位,它由几部分组成:

①软PLC 配置,在这部分设置了内核和各个模块的相关参数,

主要包括:模块列表,列出了要运行的模块;变量列表,列出了软PLC 中的全局变量,并定义了具有对应全局变量有写权限的模块。

② 公共配置,这部分设置了各个模块之间的共同属性。

③ 同步配置,这部分是要配制各个模块之间的同步性。为了保证数据的传输,必须让模块之间同步。

④ 实时性配置,软PLC 可以运行在3 种模式:正常模式、软实时模式和硬实时模式,设计时可以根据具体情况选择其中的一种模式。

对于每个具体的设计来说,需要对配置文件中的几个部分进行配置。

(3) 人机界面模块(HMI),用户和软PLC 之间的互动模块。通过友好的人机界面,用户可以控制软PLC 的调用和开关,同时可以查看软PLC 各个状态点的状态。在Linux 下,可以使用GTK 或者TCL/TK 进行设计。本设计由于整个数控系统的需要,采用了TCL/TK 进行设计。因为软PLC 的其他部分是用c语言进行设计,因而在用tcl/tk设计的人机界面模块和软PLC 之间,需要设计一个TCL/TK 的扩展模块作为两种语言之间的接口,这样在界面上就可以用TCL 语言调用C 语言编写的软PLC 函数。现阶段本设计主要完成了常用的PLC 图形语言梯形图和两种文本语言IL 语言和ST 语言的设计,因而人机界面可以分为两种,梯形图的编辑运行界面和文本编程的监控界面。

① 梯形图界面(如图2)。在梯形图界面上,用户可自由拖动如开关、计时器等各种器件进行自主编程,从而实现在线编程。在界面上右侧是状态栏,可以对各种状态点的控制和状态显示,如将状态点B1 状态置1,则需单击B1 前的小方框。界面的上方是菜单栏。用户可通过菜单的选择进行编辑、保存、打开等功能,编辑完毕,按下Run 键,TCL/TK 的底层程序将会检测状态点状态,并根据元件种类进行逻辑运算,这些直接使用TCL/TK 编程就可以实现。而Exit 键则是退出软PLC,当按下该键时,将会设置全局变量Quit = 1 并传递给关闭模块Plcshutdown。关闭模块将关闭所有在运行的软PLC模块,并杀死共享内存上的信号量。

② 文本编程监控界面。文本语言相对不够图形语言直观,设计监控界面,可以从监控界面上调用所需要的文本程序,同时对各个状态点的状态进行显示和控制。

(4) 文本编辑模块,用户PLC文本程序的编辑模块,使用文本编辑器即可实现。用户使用符合61131-3 标准的编程语言编写控制应用程序。编辑好的模块将会被软PLC 的编译器所编译,生成可执行代码。

(5) 逻辑模块,软PLC 的核心模块,它包括IEC61131-3编译器和数据处理模块。IEC61131-3编译器将编译用户编辑好的文本应用程序,首先将PLC 的代码编译成C 语言,然后再调用GCC 将程序和软PLC的链接库编译成目标文件,同时显示编译结果的正确性,将编译的错误信息及警告信息反馈给用户。

文本编辑模块与编译模块在软PLC 运行时,不会作为调用模块。软PLC只调用最后生成的可执行模块。数据处理模块执行对各种浮点型数据的操作,功能包括PID控制、按一定的比例缩放数据大小等。

(6) 通信模块(Communication module),主要负责软件的网络通信协议等的实现,借助与操作系统的结合构建网络服务器,实现强大的网络服务功能,实现Modbus 等总线协议的总线控制功能。

(7) I/O 模块,软PLC与物理IO连接的模块。通过IO 模块,软PLC 的状态点与硬 件的IO 点一一对应,软PLC 可以通过IO 模块直接读写PC104 上IO扩展板的IO 点,实现对I O 点的读取和控制。

( 8 ) 关闭模块(Plcshutdown),由于本设计采用了多模块化设计和共享内存通信机制。因而软PLC退出,需要关闭所有正在运行的模块和杀死共享内存上的信号量。关闭模块提供了Quit的全局变量, 当Quit=1,将运行关闭模块中的程序关闭所有的软PLC 模块和杀死共享内存的信号量。

以上是根据需要设计的一些模块,根据用户需要还可以增加一些模块,如记录模块,数据库连接模块等,这些模块将会记录软PLC 的工作记录和保存软PLC 的数据记录。这些有待进一步的开发和设计。设计好各个模块,软PLC 的工作流程可如图3 所示。

本设计是在Linux 下进行设计,除HMI 模块是使用TCL/TK 设计外,其他均是使用C 语言进行编写,在Linux 下使用GCC 进行编译。由于篇幅所限,此处不展示代码。

实例

下面以一个简单的对3并口通道循环控制为例,说明软PLC 的工作流程。

(1)梯形图编程。从软PLC 主界面进入后,启动梯形图编程,调用梯形图编程的主程序。梯形图编程共需要调用梯形图界面模块、关闭模块、IO 模块,这些均在配置文件中设置好,不需用户进行设置。配置文件主要部分定义如下:

需运行的模块: 主要状态点定义:Ladder为拥有写的权利模块,主程序启动后,将读取对应的配置文件,运行所需模块。

用户即可在梯形图界面进行编辑,编辑后的梯形图程序如图4所示。这是一个比较简单的程序,因而只需要使用3个计时器和几个复位、置位输出就可以实现功能。编辑好梯形图程序后,按下Run 键,程序即可运行,并实现对IO 板上对应端口的控制。

(2)文本IL 语言编程。开始与梯形图编程相同,从软PLC 主界面进入后,启动IL 语言编程,调用主程序。文本编程共需要调用监控界面模块、逻辑目标程序模块、关闭模块、IO 模块。逻辑目标模块为用户编辑好的IL 程序,并通过编译器生成的可执行逻辑程序,用户可在PC 机上编辑和编译好逻辑程序,再移植到PC104 上进行调用。配置文件主要部分定义如下:

需运行的模块:

主要状态点定义:

为编译后的IL 程序模块。由于篇幅关系,实现循环控制的IL 程序在此处不再列出。

结束语

软PLC 具有强大的功能,在工业控制中发挥着越来越重要的作用,是一项具有巨大潜力的技术,其强大的网络功能是传统的PLC 无法比拟的。中国工业自动化的水平相对国外来说较低,技术含量少。因而国内企业要在激烈的竞争中立于不败之地,必须增加生产的自动化程度,提高产品的技术含量。发展自主产权的软PLC 将对此问题产生有力的推动作用,也有助于我国PLC 企业发展本国市场并向外扩展。 

关键字:周期  编程  兼容  硬件 引用地址:基于Linux系统的软PLC设计

上一篇:智能多业务语音片上系统设计
下一篇:冲击信号处理芯片设计、实现及应用

推荐阅读最新更新时间:2024-05-13 18:39

6502单片机编程--伪指令1
**字节定义伪指令.DB** 该伪指令可以定义数据,比如字节,也可以定义 字符串,汉字等 1. 定义字节 在字节前加 $, 代表是十六进制 在字节前加 @, 代表是二进制 在字节前什么都不加,代表是十进制 例如 .ORG $0000 .DB $30,$31,$32 我们编译一下,选择 查看-内存窗口,发现地址0000开始的内容是 30 31 32 例如 .ORG $0000 .DB @00110000,@00110001,@00110010 我们编译一下,选择 查看-内存窗口,发现地址0000开始的内容是 30 31 32 例如 .ORG $0000 .DB 48,49,50 我们编译一下,选择 查看-内存窗口,发现地址0000开
[单片机]
基于80C196KC与PSD4235G2在线编程的实现 (
  随着 MCU 的广泛应用,其性能不断提高,集成度也日益提高。传统的 MCU 系统设计,在选好 MC U 后还要采购大量的分离器件(如地址锁存器、译码器、扩展芯片、 RAM , EPROM , PLD 等), 使系统复杂度高、可靠性低,且调试繁琐、效率低下,造成设计复杂 , 印制板面积增大。还 要考虑到各种干扰 , 总线竞争等很多因素,系统常常不稳定。   本文介绍一种基于闪烁存储器的在线可编程微处理器外围器 PSD4235G2 组成的 MCU 系统。即通 过计算机串口将程序代码在线远程下载到 MCU 系统的存储器中,实现 IAP 的功能。 1PSD4235G2 的性能特点    PSD4235G2
[单片机]
基于80C196KC与PSD4235G2在线<font color='red'>编程</font>的实现 (
单片机编程器分类及功能解析
 通用编程器      G840联机/脱机烧写编程器   1、40针准全驱动,进口优质锁紧座。满足绝大多数 IC 烧录的脚位需求,充分提供了未来升级的基础条件。   2、用户享受终身升级支持。纯软件升级,只要从网上下载最新版本软件,就可完成升级。您的编程器将永远是最新的。   3、提供联机操作模式和脱机操作模式,既适用于开发、试验、教学,又适用于小批量量产,无须总是开电脑。   4、触摸键控制,你可以不用点击 鼠标 ,使操作更为方便。触摸键经久耐用,永不损毁。   5、针脚接触检测准确无误。遇接触不良或插放错误,及时中止操作进程。   6、操作结果三重指示:软件界面显示、指示灯显示、可
[单片机]
单片机<font color='red'>编程</font>器分类及功能解析
安森美推出仿真工具,助力加速复杂电力电子应用上市周期
安森美推出仿真工具,助力加速复杂电力电子应用上市周期 引领行业的PLECS模型和系统级仿真,适用于软/硬开关应用、边界建模和 自定义寄生环境,可创建虚拟原型 2023 年 3 月 22日—领先于智能电源和智能感知技术的安森美(onsemi),针对其EliteSiC碳化硅(SiC)产品系列及其应用推出一款突破性的仿真工具 。全新的Elite Power Simulator在线仿真工具和PLECS模型自助生成工具,使工程师在开发周期的早期阶段,通过对复杂电力电子应用进行系统级仿真,获得有价值的参考信息。这些工具提供尖端前沿的精确仿真数据,从而让客户根据应用需求进行EliteSiC产品选型,无需耗费成本和时间进行硬件制造和
[模拟电子]
安森美推出仿真工具,助力加速复杂电力电子应用上市<font color='red'>周期</font>
基于ARM 处理器的低成本网关硬件设计
随着物联网技术的飞速发展,将传统的Internet与新型的无线传感器网络整合的趋势越来越明显,嵌入式服务网关既是无线传感器网络的协调器网关,又是远程WEB 的服务器,它实现两个不同协议的网络之间的通信。同时也是将无线传感器网络接入Internet,从而实现物联网概念的关键设备。物联网服务网关在未来的物联网时代将会扮演非常重要的角色,它将成为连接物联网感知层网络与传统通信网络的纽带。物联网网关可实现感知网络和基础网络以及不同类型的感知网络之间的协议转换,既可以实现广域互联,也可以实现局域互联。并且具有广泛的感知网接入、通信协议转换和强大的系统管理等特点 。利用嵌入式系统设计的服务网关可以有效降低成本,利用家庭智能化的普及。
[单片机]
基于ARM 处理器的低成本网关<font color='red'>硬件</font>设计
工程师课堂:高频状态下电磁兼容设计的误区分析
电磁兼容 的问题常发生于 高频 状态下,个别问题(电压跌落与瞬时中断等)除外。 高频 思维,总而言之,就是器件的特性、电路的特性,在高频情况下和常规中低频状态下是不一样的,如果仍然按照普通的控制思维来判断分析,则会走入设计的误区。比如: 电容,在中低频或直流情况下,就是一个储能组件,只表现为一个电容的特性,但在高频情况下,它就不仅仅是个电容了,它有一个理想电容的特性,有漏电流(在 高频 等效电路上表现为R),有引线电感,还在导致电压脉冲波动情况下发热的ESR(等效串联电阻),(如图)。从这个图上分析,能帮我们设计师得出很多有益的设计思路。第一,按照常规思路,1/2πfc是电容的容抗,应该是频率越高,容抗越小,滤波效果越好,即越高
[电源管理]
工程师课堂:高频状态下电磁<font color='red'>兼容</font>设计的误区分析
ADSP-TS101S嵌入式系统的混合编程设计
ADSP-TS101S是美国ADI公司推出的一款具有极高性能的数字信号处理器(DSP)芯片,其专为大信号处理任务和通信应用进行了结构上的优化设计,在嵌人式信号处理中得到广泛应用。ADSP-TS101S的软件设计可以采用汇编语言、高级语言(C/C )或高级语言与汇编语言混合编程。完全采用汇编编程,执行效率高,但对于复杂算法编写难度大,开发周期长,可读性和可移植性差;而完全采用C编程虽然可以弥补汇编的缺陷,但是程序的执行效率相对较低,大概只有汇编程序的10%~20%,对于实时性要求很高的处理,如雷达信号处理,很难满足要求。采用混合语言编程,用c语言构建框架,用汇编完成运算量较大的核心处理模块及硬件底层管理,就可以把两者的优点有效地结合
[嵌入式]
ADSP-TS101S嵌入式系统的混合<font color='red'>编程</font>设计
Nantero 22纳米存储器开关出炉,实现3纳秒数据读写周期
Nantero公司日前宣布成功测试了一款22纳米的存储器开关。该NRAM存储器是一款可写存储器器件,能无需电能就可以保持数据内容,使其成为潜在的通用存储器,应用广泛。 此外,Nantero还表示采用现有的技术节点开发出了NRAM存储器芯片,并且已经在CMOS加工厂投入生产。在LSI Logic宣布成为无厂公司前,Nantero曾与LSI Logic公司合作,后者为前者的制造合作伙伴。 Nantero NRAM开关通过了以3纳秒周期时间进行数据读写的测试,使其具有了匹配目前最快存储器的潜力。NRAM开关受美国专利6,706,402保护,该公司表示拥有超过80项专利正在申请中,涉及碳纳米管电子应用的多个方面。其中已经有12项专利得
[焦点新闻]
小广播
最新应用文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved