您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页基于IEC61131-3标准的可编程控制器的研究与实现

基于IEC61131-3标准的可编程控制器的研究与实现

来源:测品娱乐
《工业控制计算机/2010年第23卷第10期 基于IEC61 1 31—3标准的可编程控制器的研究与实现 Programmable Logical Controller Based on IEC61 1 31—3 Standard 仲崇权(大连理工大学控制科学与工程学院,辽宁大连116024) 于诗杰 (武汉大学电气工程学院,湖北武汉430072) 摘 要 研究了基于lEC61131—3国际标准的可编程控制器PEC3000。介绍了高速计数模块、开关量输入模块、PWM高速输 出模块、普通开关量输出模块、模拟量输出模块和串行通信模块硬件电路及驱动程序设计。介绍了功能块编程语言实现技 术、功能块编码格式和从设备管理通信模型。提出了一种基于RS485总线、以PEC3000为主控制器的可编程控制系统的 体系结构,将支持标准MODBUS协议的I/O设备组成控制网络,实现了系统的全分布式控制。 关键词:IEC61131—3,可编程控制器,RS485,MODBUS,分布式控制 Abstract A programmable logical controller based on IEC61 131—3 international standard with the name of PEC3000 is designed The modules of high speed counter,logical input,PWM output,logical output,analog output and serial communication are in— troduced.The implement technology of a program language of Function Blocks,the code format of Function Blocks and communication module about slave management are introduced The architecture of a Programmable Logical Control System based on RS485 with PEC3000 as its main controller is raised.A control network is composed with extended I/O devices based on standard MODBUS protocol to realize a total Distribute Control System Keywords:lEC61 131-3.programmable logical controller,RS485.MODBUS,distribute control system 由于传统的PLC编程语言存在着许多难以克服的缺陷,用 户急切需要一套统一的编程语言和开发工具。lEC61131—3的 颁布为工业自动化控制系统的软件设计提供标准化的编程概念 和编程方法。 IEC 61131—3是第一个为工业自动化控制系统的软件设 计提供标准化编程语言的国际标准。该标准提供给用户一种良 好结构、自上而下或自下而上的程序开发方法;提供完善的配置 集成,允许程序分解成功能块和软件元素,进行完全的程序控 制,程序不同部分可以在不同时间,以不同周期或并行的运行; 提供了一套统一的应用于PLC的语法和语义.包括5种编程语 言,即指令表语言、结构化文本、梯型图、功能块图和顺序功能 图1控制器工作原理图 图;规范了编程语言、PLC与编程系统的接口、字符集和工程管 理软件,使得所有PLC使用相同的概念,平台程序可以互相移 植,从而整体降低自动化控制系统的费用。这些规范都是在工业 控制系统所阐述的软件设计的概念和软件模型等的基础上制定 的,适应了当今国际软件和工业控制系统的发展方向。 基于IEC 61 131—3标准和工业可编程控制器的特点,开发 了可编程控制器PEC3000。硬件部分主要包括高速计数模块、 开关量输入模块、PWM高速输出模块、普通开关量输出模块、模 拟量输出模块和串行通信模块几部分。软件部分主要完成硬件 电路的驱动、用户程序的扫描执行和从设备的管理。提出了一种 基于RS485总线、以PEC30OO为主控制器的分布式设备扩展 I/O方法,并以Modbus通讯协议为基础,研究了可编程控制系 统的实现。 核心处理器LPC2138是基于一个支持实时仿真和嵌入式 跟踪的32/16位ARM7TDMI—STM CPU的微控制器,具有 512K片上高速Flash、32K片上RAM,通过片内PLL可实现最 大为60MHz的CPU操作频率。具有丰富的片内外设资源,简化 了电路设计。 高速计数器输入端口(DIX0-DIX3)经高速光耦隔离后连接 到LPC2138的外部中断输入引脚,内部寄存器设置为下降沿触 发模式,输入脉冲频率范围为0.5Hz-4kHz。CPU以中断的方式 统计脉冲个数并计算当前频率值。在保证CPU运行效率而又不 损失输入频率精度的情况下,软件采用12次处理机制,每12个 脉冲计算一下当前输入频率,运算时去掉最大值和最小值,取 1O次中间值计算脉冲输入频率。 控制器具有20路普通开关量输入通道,输入电压范围为 0~30V。为防止输入电压受到干扰后控制器产生误操作,输入端 1 可编程控制器硬件设计 PEC3000以ARM7内核的LPC2138为核心处理器,完成 加有硬件滤波电路。输入信号经光电隔离后连接到74HC165芯 片的并行输入引脚上。为方便外部接线,光耦选用双向光耦 PS2815,这样开关量输入可以对应数字量1,也可以对应数字 4路隔离高速计数器、2O路普通开关量隔离输人、1路隔离 PWM高速输出、侣路普通开关量隔离晶体管输出和2路标准 电流信号输出。其控制器原理图如图1所示。 量0,由开关量输入端COM端决定。若COM端接高电平,则输 78 入高电平表示1,输入低电平表示0;若COM端接低电平,则输 入高电平表示O,输入低电平表示1。74HC165为并人串出芯 基于fEC61 131—3标准的可编程控制器的研究与实现 级放大电路U2B后由AOX0+和AOXO一输出。若将U2B电压 输出通过三极管和R 电阻反馈至U2B负级输入端,接成电流 串联负反馈,由于内部运放“虚短”,因此Q2的射级电压随占空 比变化而变化,就可实现电流输出。其输出电压有效值为: ,,『2.5 一片,SH/LD为锁存信号连接到LPC2138的P0.14脚,CLK为时 钟信号连接到LPC2138的P0.23脚,DQ为串行输出端连接到 LPC2138的P1.23上。每次读取开关量输入时,CPU控制SH/ LD为低,锁存并行输入信号,然后SH/LD置高,在CLK的控制 下,信号将通过DQ被串行读入CPU。 开关量输出经光耦隔离后连到MC1413芯片上,MC1413 25R,(『_ )]f R,+ \ ,.… }T— 一 }一 』 一级放大电路的作用一方面是把输人PWM信号电压放大 1.1倍,最主要的是克服掉了该电路在OV左右的死区电压。因 为达林顿管开漏输出,每路输出能力高达500mA,提高了控制 器的带载能力。为防止误加高压损坏达林顿管,开关量输出端口 为当光耦截止时,一级放大器的输入信号由下拉电阻R。下拉到 零。这是理想情况。实际上由于光耦漏流的影响,输入信号不可 能到DV,实测值为20mV左右(和R。的阻值也有一定关系)。这 样,经过该电路后能把电压值放大1.1倍以后再拉250mV的负 偏,有效的克服掉了OV附近的死区电压。 对于电流输出电路,电压信号经过RC积分电路后经过电 压转电流电路后,输出4~20mA电流信号。 加有限流电阻和保险丝保护电路。控制器第一路开关量输出可 以配置成PWM输出端口,连接到CPU的PWM输出模块, CPU根据用户配置设置PWM模块的频率和占空比寄存器,进 而输出相应频率。考虑到PWM信号输出频率较高,用普通晶体 管电路(MC1413)可能会使波形失真,选用两个高速晶体管级 联输出 500kHz脉冲信号振荡器输出,在这里作为一5V电荷泵的驱 动脉冲。该电荷泵用于给LM324提供负压,克服运放在低压区 工作的非线性。 2可编程控制器软件设计 2.1用户程序的扫描周期 PEC300O靠解释执行用户程序来完成控制要求。用户程序 由若干条指令组成,指令在存储器中按顺序排列。在用户程序执 行阶段,在没有跳转指令时,CPU从第一条指令开始,逐条顺序 的执行用户程序。 在PEC30OO的存储器中,设置了一片I/O映像区来存放输 入信号和输出信号的状态,它们分别称为输入映像寄存器和输 图2开关■输出电路原理图 出映像寄存器。PEC3000对用户程序的执行是以循环扫描的方 式进行的。开始运行时,首先清除J/ O映像区的内容,然后进行自诊断, 自检CPU及I/O组件,确认正常后写输}}{ 开始循环扫描。每个扫描过程分为三 个阶段,即读输入、执行程序、写输出 刷新。三个阶段的执行时间就是一个自诊断 LED指示部分由46个发光二极管组成,通过SPI口线 (MOSI1、SCLK1和NCS),将数据送到级联的74HC595上,直 接拉流驱动LED。 玎始 读输入 ’ 控制器设计有两路隔离RS485接口电路,收发控制信号由 CPU的普通输入输出口P0.6和P0.1O来控制,接受和发送引 脚则连接到CPU的两个UART模块Txd和Rxd引脚上。为能 使用较高通信速率,采用高速光耦HCPL0600隔离。RS485电 平转换芯片选用MAX485。输入/出端加有稳压二极管保护电 扫描周期。为了保证程序运行的正确 户程序流程图如图4所示。 自h: 性,还要进行CPU的自诊断。扫描用 图4控制器扫描周期 路,保险丝保护电路,防止误加高压或浪涌电流损坏内部电路。 AOO和AO1为两路模拟量输出通道,由定时器定时输出 固定频率的电压信号,通过设置定时器的匹配寄存器来调节占 空比,再经隔离、滤波、放大后得到所需的电压(电流)值。电压 (电流)信号输出电路如图3所示。每路可给出0 ̄5V电压信号 或4 ̄20mA电流信号。 在读输入阶段,PEC3000以扫描方式按顺序读取所有输入 端的输入信号状态并存入输入映象寄存器区,也称为输入刷新。 接着进入程序执行阶段。在读输入刷新阶段结束后,即使输入信 号发生改变,输入映像区中的状态也不会发生变化。执行程序 时,对输入/输出的存取通常是通过映像寄存器,而不是实际的 l/O点,这样做有以下好处:程序执行阶段的输入值是固定的, 程序执行完后再用输出映像寄存器的值更新输出点,使系统的 运行更稳定;用户程序读写f/O映像寄存器比读写l/0点快得 多,这样就可以提高程序的执行速度;I/O点必须按位来存取, 而映像寄存器可按位、字节来存取,灵活性好。 用户程序的扫描执行是以功能块为单位的,功能块编码格 图3模拟量输出电路原理图 式是功能块解释执行的基础,对整个可编程控制器功能的实现 以及性能起着决定性作用。目前业内尚没有统一的功能块编码 格式标准,已有的可编程逻辑控制器设备都是各家自己定义的 编码格式,在研究了各家的产品之后,根据功能要求及效率方面 的考虑,定义了功能块的编码格式及功能块执行机制,该编码格 AO0为LPC2138的定时器匹配输出管脚,在此得到频率 为100Hz,占空比可调的方波电压信号。线性稳压源MC1403 为光耦的次级提供精确的2.5V基准电压。光耦次级输出与 AOO信号周期(T)和高电平时间( )相同的方波信号,其电压 峰峰值为2.5V。PWM信号经一级放大器U2A调整后再由R 和 式读取解析方便,节省存储空间,实践证明是可行的。 给每一个功能块分配不同的功能码,根据功能码的不同,决 C 积分电路把方波信号平滑成接近于直流电压信号,最后经二 《工业控制计算机}2010年第23卷第1O期 定了功能块的长度,输入输出流的含义 表1“与”块存储格式 等。以“与”功能块为例进行说明。其在存 意义 储区的存储格式如表1所示。 “AND”功能块代码 用户程序执行时,先从用户程序存储 “AND 功能块扩屣码 区中读出功能码,分析是“与”功能块后, 网络坐标 将功能块扩展码读出来,在“与”块中,功 I区 能块扩展码存储的是输入个数,为2-8 l 第0字 之间的一个整数。本例为2输人“与”门。 IIx第0字筇5位 有了这些信息之后,功能块的雏形基本上 M 已经确定了。 M¨x第l字 10 l 15依次将输入 M区第1字第4位 肺1 读出,本例中 为10.5。  Olx Q区第1字 控制器将信息存储于不同的存储单 叶O 第1字第l 5位 元,每个单元都有唯一的地址,也就是访 问路径。这样就允许用户程序直接存取这个地址。若要存取存储 器区域的某一位,则必须指定地址,包括存储器标识符,字偏移以 及位号。在这个例子中,l为过程输入映像寄存器,0表示字偏移 为0,5表示位地址。有了这三个变量,就唯一确定了一个位地址。 若是字变量,则直接用常数或存储器标示符和字偏移来表示。 位地址确定后,程序就可以读出该位的逻辑值,作为“与”功 能块的IN1的值,依次解析INn,进行与运算后将结果输出到 QO.15上,实现“与”块的功能。 所有用户程序执行后进人输出刷新阶段。此时,将输出映像 寄存器区中所有输出继电器的状态转存到锁存电路,通过输出 端驱动用户输出设备(负载)。这就是PEC3O00的实际输出。 2.2 PEC3000的从设备管理 可编程控制器PEC3OOO从设备管理模型如图5所示。内部 设计有通信调度管理器,负责数据的收发和信息的传递。在 PEC3000的存储器中设置一片区域,用来存取从设备的输入、 输出状态,它们分别称为扩展设备输入映像寄存器和扩展设备 输出映像寄存器。 I ......一 一一一一一一一一一一一一......... 一一一一一一一一一一一一...... 。..一一一一图5控制器从设备管理模型 PEC3O00对其扩展的I/O设备进行管理,主要通过通信配 置、设备上下线管理、串行通信功能块和从设备组态等几种方式 实现。在PEC3000内部为每个从设备分配配置参数存储区。用 户在上位机组态软件PLC—Config上根据实际需要对通信内 容、通信协议和通信周期等进行配置后下载到主控制器的配置 参数存储区中。扫描从设备后,若设备在线,则根据用户配置与 从设备通信,周期刷新扩展设备映射寄存器。串行通信功能块是 以运行功能块的形式配置通信格式来实现与从设备通信。从设 备组态,是以主设备为网关,以存储转发的形式实现编程上位机 与从设备的通信。 由上可知,从设备管理主要是靠与从设备通信来实现的。这 也是可编程逻辑控制系统的特点所在。主控制器内部具有两个 不同优先级的串行通信缓冲队列。主从通信时,待发送的报文不 79 是直接发送到RS485总线上,而是存入缓冲队列中。实时性要 求高的报文,存入高优先级缓冲队列中,例如从设备组态报文; 而程序正常运行过程中对从属设备实时数据的读取等报文则存 入低优先级缓冲队列中。 2.3主程序流程图 PEC3000的软件设计主要完成 硬件电路的驱动,功能块逻辑的执 行,从设备的管理和通信的响应几部 分功能。 PEC3000的内部主程序流程图 如图6所示。当模块上电或看门狗复 位时,将执行初始化操作,完成CPU 管脚及外设配置、系统参数、从设备 参数、存储区、全局变量、串行通信 口、看门狗、中断向量等的初始化操 作。 初始化结束后进人主循环,如果 用户组态的功能块程序用到中断功 能的话,主程序将会每隔0.4ms周期 性检查是否有相应中断事件发生,并 将其放入相应优先级中断缓冲队列 中。否则,直接返回主函数。 图中通信处理部分会对两路 RS485串行口中被配置为从口的通 信状态进行查询。若串行发送操作结 束,则立即切换为接收状态;若接收 到新的数据且接收完毕,则对接收数 图6主程序流程图 据进行语法及语意检查,检查通过后 会进行命令翻译和响应;若正在发送数据或接收数据,则继续发 送或接收,直到发送或接收操作完毕。 为了保证功能块程序运行的正确性,设立了功能块软件看 门狗,程序运行功能块时周期初始化看门狗,若一定时间内没有 喂狗操作,则控制器软件看门狗则会置位超时标志位。 程序运行过程中,与从设备通信的指令都放人相应优先级的 通信缓冲队列中。主程序周期性检查主口的通信状态。若正在接 收数据或正在发送数据,则继续接收或发送并退回到主循环函 数;若接收操作已经结束,则转入数据解析处理部分,将从设备回 的信息放入相应的数据映像区;若发送操作已经结束,则会进入 接收状态。若端口空闲,则扫描通信缓冲区,发送下一条通信指 令。在接受数据的过程中,设立了超时判断和错误处理。如果在一 定时间内没有收到从设备回应的信息,则会认为超时。如果同一 个从设备的通信错误次数超过一定值,则认为该从设备不在线。 功能块执行是PEC3000的重要功能,对来自编程上位机的 组态程序解析执行。功能块是现场设备的软件核心,它将现场设 备的各种功能封装成一个个软件功能单元,每一个功能由他们 的输入、输出、内含参数以及对这些参数进行相应操作的算法组 成。根据功能块的结构特点,解析输入参数进行相应运算进而输 出。特殊功能块处理是本控制器设计的一大特色,其参数计算是 按照顺序执行的思想进行,但是实际的执行则是利用分时段处 理进行,PID功能块就是基于此设计。 系统看门狗复位处理和错误处理相配合,采用的是软件看 门狗技术,每次主程序执行一轮之后会向系统看门狗喂狗寄存 器写入固定的时序,来防止整个程序跑飞。 (下转第81页) 《工业控制计算机}2010年第23卷第1O期 的请求,读取数据库,并将数据或处理结果反馈给客户端。在服 务器端开发时,采用VC6.0,数据库的读取采用ADO进行读取。 系统采用三层框架体系,包括数据库层、业务层、表示层。其中 数据库层,保存相应的数据,用类对数据库表的字段进行封装。业 务层则封装了对数据库的操作,包括的表的新增、删除、修改、查询 操作。表示层则显示最终的界面,调用表示层的功能函数。 2.3客户端的实现 客户端主要功能为采集现场的缺陷信息,需要实现从基础 81 照格式要求将数据封装XML字符串,加上文件头后发送到服务 器端;服务器端接收请求字符串,首先剥离文件头,然后对XML 进行解析,读取请求信息,按照请求的内容进行操作,读取相应 的数据,然后按照同样的方法将数据传送回客户端。 客户端发送的请求信息以request:开头,后接3位消息码, 表示请求的类型。之后为XML字符串,用于存储数据或请求信 息。XML数据的存储采用CMarkUp类库实现,将数据封装入 XML,利用成熟的类库,在程序维护时效率更高。 在实际处理过程中,根据类型的不同,可以加上XML数据 串,也可以不加。如系统登录时,要下载所有数据,则发送Re— quest:001即可,但如判断密码正确性,则需要Request:002,后 信息中读取诸如缺陷原因、工序名称等信息和写入现场缺陷信 息功能。由于其需要暂存部分信息,故而需要解决其本机数据库 的读取;另外,由于PDA上的屏幕较小,对界面的设计也是一个 相对重要的问题。 加上对应的XML字符串。 3结束语 本机的开发采用Visual C++.Net 2005的智能开发程序, 数据存储采用Sql Server Mobile数据库。数据库的读取的框 架与服务器的相同,但由于在VC.Net2005平台中,微软只提供 了OLE DB API,这种技术读取速度相对较快,但由于处于底 层,其操作相对复杂,代码量较大。 由于PDA屏幕较小,为普通PC机屏幕的八分之一左右, 所以普通PC机上界面设计在PDA程序中是不适用的。通常, 通过PDA设备采集现场缺陷信息,可以提高采集数据的效 率和积极性,为后期数据的分析打下基础。在此基础上,以后可 以将存储图片、直接实现在PDA上检测,可以进一步应用。 参考文献 [1]李振坤,蓝芳华.基于PDA的无线餐饮点菜应用系统的设计与实现 [J].计算机应用研究,2006(2) 需要采用多个子窗体的形式,在不使用时隐藏子窗体,使用时才 显示,以节约屏幕。由于PDA上没有键盘,要尽量减少文字输入 操作,通过点选、下拉框的方式进行。在读取时,采用子对话框嵌 入的方式节约屏幕。 [2]崔琳,赵劲松.移动设备在事故调查数据采集中的应用[J].微计算机 信息(管控一体化),2009(25) f3]刘尊民,林海波,仪垂杰.油井无线监控系统的设计与实现[J].工业 控制计算机,2010(23) 2.4网络通信的实现 网络通信采用Socket实现,在通信时,客户机读取数据,按 [4]丘广新.基于PDA地下管线探测数据采集系统[J].地理空间信息, 2009f6) 『收稿日期:2010 8 9] (上接第79页) 展方向。本机集成丰富的开入、开出及模拟量输出点数,完善的保 3系统设计与实现 以RS485总线为控制网络,每个主控制器PEC3000包括 护措施使设备在恶劣环境下能够稳定运行。为平衡用户程序执行 效率和功能,定义了功能块的编码格式及功能块执行机制。完善的 从设备管理,用户只需进行简单的配置就可实现复杂的控制 功能,适应了工业控制系统的发展方向。提出了一种以PEC3000 两路RS485串行通信接口,用户可配置其主从属性(至少 有一路为从)。PEC3000的从口通过主干RS485总线与工程师 站、监控站进行数据信息交换,主口则通过扩展RS485总线采 为主控制器的扩展I/0设备管理方案,将基于Modbus协议的工 业现场设备方便的组成网络,统一由可编程控制器管理,实现了系 集现场I/O设备的实时数据和状态信息。另外,主控制器之间还 可以进行级连完成网关的功能,形成复杂的分布式控制系统。 主控制器PEC3O00一方面连接在主干RS485总线上,可 统的全分布式控制,可以应用于各种工业控制场合。 参考文献 [1]John K H,Michael T.IEC61131—3工业自动化系统的程序编制 [Z].中国机电一体化技术应用协会秘书处,译,2002 [2]邢建春,王双庆,关光炳IEC 6113 —3工业自动化系统的控制逻辑 组态软件标准[J].世界仪表与自动化,2003(8):25—28 [31Karl J.IEC61 131—3 programming industrial automation sys— 直接作为现场总线的应用层设备完成数据的采集和输出,也可 通过扩展RS485总线与现场Modbus设备进行实时数据交互。 其中现场Modbus设备为支持标准Modbus通讯协议的设备。 工程师站可通过PEC3000的组态软件PLC—Config软件对主 控制器进行编程和配置操作,如果Modbus设备为DUT6000 系列(温度采集模块)或DlO2000系列(开关量模块),也可以直 接在PLC—Config软件中打开DUT6000系列组态软件 DUTConfig或DIQ2000系列组态软件DIO_Config来对其从 _tems[M1.Springer,2003 [4]周立功ARM微控制器基础与实战[M].北京:北京航空航天大学出 版社,2003 设备进行编程操作。主控制器可将从设备的I/0点映射成内部 寄存器变量,对其进行区域集中控制,当从设备自身形成控制回 路时,主控制器则收回对从设备的控制权,只负责从设备数据信 息的采集并将其传递给上位机,实现全分布式控制。从设备中对 于无需映射到主控制器内部寄存器的控制量,可以通过转发的 形式进行处理,此时主控制器充当网关作用,很好地解决了系统 应用过程中本地人机交互的问题。 4结束语 基于lEC 61 131—3标准的可编程控制器PEC30OO,提供了 一[5]仲崇权,李卓函,张钰.基于IEC61131—3标准的EPA现场总线控制 系统[J].世界仪表与自动化,2007,11(4):23—25 [6]杨晖,张凤言大规模可编程逻辑器件与数字系统设计[M].北京:北 京航空航天大学出版社,2001 [7]Dong Qian,Xie Jianying fieldbus network implementation based on RS一485 fJ1.Proceedings of the 4th World Congress on Intelligent Control and Automation,2002,14(4): 2790-2793 [8]Jan T,Hans M H.model—based generation of modular PLC 套统一的应用于PLC的语法和语义,适应了可编程控制器的发 code using IEC61 131 function blocks[J].Industrial Electronics, 2002l(1):199—204 [收稿日期:2010.9 22] 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务