第5章PLC系统设计选型 PLC是工业机器人系统集成的控制核心,主要用来协调工作站中各元器件的动作和功能,实现集成系统的自动化运行。 5.1PLC概述 PLC以其结构紧凑、应用灵活、功能完善、操作方便、速度快、可靠性高、价格低等优点,已经越来越广泛地应用于自动化控制系统中,并且在自动化控制系统中起着非常重要的作用,已成为与分布式控制系统并驾齐驱的主流工业控制系统。世界上有200多个PLC生产厂家,如美国的AB公司、莫迪康公司、GE公司,德国的西门子公司,日本的欧姆龙公司、三菱电机公司以及中国的浙江浙大中控信息技术有限公司等。对于不同的工业控制需求,应当选择合适的PLC。 1. 控制系统任务的分析 随着PLC功能的不断完善,几乎可以用PLC完成所有的工业控制任务。但是,是否选择PLC控制,选择单台PLC控制、还是多台PLC的分散控制或分级控制,还应根据系统所需完成的控制任务、对被控对象的生产工艺及特点进行详细分析,特别是从以下几方面考虑。 控制规模: 一个控制系统的控制规模可用该系统的输入、输出设备总数来衡量,控制规模较大时,特别是开关量控制的输入、输出设备较多且连锁控制较多时,最适合采用PLC控制。 工艺复杂程度: 当工艺要求较复杂时,用继电器系统控制极不方便,而且造价也相应提高,甚至会超过PLC控制的成本,因此,采用PLC控制将有更大的优越性。特别是工艺要求经常变动或控制系统有扩充功能的要求时,则只能采用PLC控制。 可靠性要求: 虽然有些系统不太复杂,但对可靠性、抗干扰能力要求较高时,也需采用PLC控制。20世纪70年代,一般认为I/O总数在70点左右时,可考虑PLC控制; 到了20世纪80年代,一般认为I/O总数在40点左右就可以采用PLC控制; 目前,由于PLC性价比的进一步提高,当I/O点总数在20点甚至更少时,就趋向于选择PLC控制了。 数据处理速度: 当数据的统计、计算规模较大,需要很大的存储器容量,且要求很高的运算速度时,可考虑带有上位计算机的PLC分级控制; 如果数据处理程度较低,而主要以工业过程控制为主时,采用PLC控制将非常适宜。 2. PLC选型原则 选择能满足控制要求的适当型号的PLC是应用设计中至关重要的一步。目前,国内外PLC生产厂家生产的PLC品种已达数百个,其性能各有特点。所以,在设计时,首先要尽可能考虑采用与单位正在使用的同系列的PLC,以便于学习和掌握; 其次是备件的通用性,可减少编程器的投资。此外,还要充分考虑下面因素,以便选择最佳型号的PLC: (1) 输入、输出设备的数量和性质根据系统的控制要求,详细给出PLC所有输入量和输出量的情况,包括: 有哪些开关量输入?电压分别是多少?尽量选择直流24V或交流220V。 有哪些开关量输出?要求驱动功率为多少?一般的PLC输出驱动能力约2A,如果容量不够,可以考虑输出功率的扩展,如在输出端接功率放大器、继电器等。 有哪些模拟量输入、输出?具体参数如何?PLC的模拟量处理能力一般为1~5V、0~10V,或4~20mA。 在确定了PLC的控制规模后,一般还要考虑一定的余量,以适应工艺流程的变动及系统功能的扩充,一般可按10%的余量来考虑。另外,还要考虑PLC的结构,如果规模较大,以选用模块式的PLC为好。 (2) PLC的特殊功能要求。控制对象不同会对PLC提出不同的控制要求。如用PLC替代继电器完成设备的生产过程控制、上下限报警控制、时序控制等,只需PLC的基本逻辑功能即可。对于需要模拟量控制的系统,则应选择配有模拟量输入/输出模块的PLC,PLC内部还应具有数字运算功能。对于需要进行数据处理和信息管理的系统,PLC则应具有图表传送、数据库生成等功能。对于需要高速脉冲计数的系统,PLC还应具有高数计数功能,且应了解系统所需的最高计数额率。有些系统,需要进行远程控制,就应先配置具有远程I/O控制的PLC。还有一些特殊功能,如温度控制、位置控制、PID控制等,如果选择合适的PLC及相应的智能控制模块,将使系统设计变得非常简单。 (3) 被控对象对响应速度的要求。各种型号的PLC的指令执行速度差异很大,其响应时间也各不相同。一般来讲,不论哪种PLC,其最大响应时间都等于输入、输出延迟时间及2倍的扫描时间三者之和。对于大多数被控对象来说,PLC的响应时间都是能满足要求的,但对于某些要求快速响应的系统,则必须考虑PLC的最大响应时间是否满足要求。 (4) 用户程序存储器所需容量的估算。用户程序存储器的容量以地址(或步)为单位,每个地址可以存储一条指令,用户所需程序存储器的容量在程序编好后可以准确地计算出来,但在设计开始时往往办不到,通常需要进行估算,一般粗略的方法是 (I/O)总数×(10~20)=指令步数 如果系统中含有模拟量,可以按每个模拟量通道相当于16个I/O点来考虑。比较复杂的系统,应适当增加存储器的容量,以免造成麻烦。 5.2PLC选型实践 5.2.1PLC系统设计 系统设计包括硬件设计和软件设计。所谓硬件设计,是指PLC及外围线路的设计,而软件设计即PLC程序的设计,包括系统初始化程序、主程序、子程序、中断程序、故障应急措施和辅助程序等。 1. 硬件设计 在硬件设计中,要进行输入设备的选择(如操作按钮、转换开关及模拟量的输入信号等)、执行元件(如接触器、电磁阀、信号灯等),以及控制台、柜的设计等。应根据PLC使用手册的说明,对PLC进行输入/输出通道分配及外部接线设计。在进行I/O通道分配时应做出I/O通道分配表,表中应包含I/O编号、设备代号,名称及功能,且应尽量将相同类型的信号、相同电压等级的信号排在一起,以便于施工。对于较大的控制系统,为便于软件设计,可根据工艺流程,将所需的计数器、定时器及内部辅助继电器也进行相应的分配,这些工作完成之后,就可以进行软件设计了。 2. 软件设计 软件设计的主要方法是先编写工艺流程图,将整个流程分解为若干步,确定每步的转换条件,配合分支、循环、跳转及某些特殊功能便可很容易地转为梯形图了。在编写梯形图时,经验法是非常重要的方法。因此,在平时要多注意积累经验。 软件设计可以与现场施工同步进行,即在硬件设计完成以后,同时进行软件设计和现场施工,以缩短施工周期。 系统调试分为两个阶段: 第一阶段为模拟调试,第二阶段为联机调试。 当PLC的软件设计完成之后,应首先在实验室进行模拟调试,检查是否符合工艺要求。模拟调试可以根据所选机型,外接适当数量的输入开关作为模拟输入信号,通过输出端子的LED,可观察PLC的输出是否满足要求。 当现场施工和软件设计都完成以后,就可以进行联机统调了。在统调时,一般应首先屏蔽外部输出,再利用编程器或编程软件的监控功能,采用分段分级调试方法,通过操作外部输入器件检查外部输入量是否连接无误,然后再利用PLC的强迫置位/复位功能逐个运行输出部件。 系统调试完成以后,为防止程序遭到破坏和丢失,可通过存储设备将程序保存起来。 5.2.2CODESYS软PLC的设计 CODESYS软件由德国Smart software solution GmbH公司所开发,是可编程逻辑控制PLC的完整开发环境(CODESYS是Controlled Developement System的英文缩写),在 PLC 程序员编程时,CODESYS为强大的 IEC 语言提供了一个简单的方法,系统的编辑器和调试器的功能是建立在高级编程语言的基础上(如 Visual C++)。 CODESYS包括 PLC 编程、可视化 HMI、安全 PLC、控制器实时核、现场总线及运动控制,是一个完整的自动化软件。其功能强大,易于开发,可靠性高,开放性好并且集成了 PLC、可视化、运动控制及安全 PLC 的组件。 软件 PLC 综合了计算机和 PLC 的开关量控制、模拟量控制、数学运算、数值处理、网络通信、PID 调节等功能,通过一个多任务控制内核,提供强大的指令集、快速而准确的扫描周期、可靠的操作和可连接各种 I/O 系统及网络的开放式结构。所以,软件 PLC 提供了与硬件 PLC 同样的功能,同时又提供了PC环境。软PLC与硬PLC相比,还具有如下的优点: (1) 具有开放的体系结构。软 PLC 具有多种 I/O 端口和各种现场总线接口,可在不同的硬件环境下使用,突破传统PLC对硬件的高度依赖,解决了传统PLC互不兼容的问题。 (2) 开发方便,可维护性强。软 PLC 是用软件形式实现硬 PLC 的功能,软 PLC 可以开发更为丰富的指令集,以方便实际工业的应用; 并且软 PLC 遵循国际工业标准,支持多种编程语言,开发更加规范方便,维护更简单。 (3) 能充分利用 PC机的资源。现代 PC机强大的运算能力和飞速的处理速度,使得软 PLC能对外界响应迅速作出反应,在短时间内处理大量的数据。利用 PC机的软件平台,软 PLC能处理一些比较复杂的数据和数据结构,如浮点数和字符串等。PC 机大容量的内存,使得开发几千个 I/O端口简单方便。 (4) 降低对使用者的要求,方便用户使用。由于各厂商推出的传统 PLC 的编程方法差别很大,并且控制功能的完成需要依赖具体的硬件,工程人员必须经过专业的培训,掌握各个产品的内部接线和指令的使用。软 PLC 不依赖具体硬件,编程界面简洁友好,降低了使用者的入门门槛,节约培训费用。 (5) 打破了几大家垄断的局面,有利于降低成本,促进软PLC技术的发展。 要实现软 PLC控制功能,必须具有三个主要部分,即开发系统、对象控制器系统及 I/O模块。开发系统主要负责编写程序,对软件进行开发。对象控制器及 I/O模块是软 PLC的核心,主要负责对采集的I/O信号进行处理、逻辑控制及信号输出的功能。 CODESYS从架构上基本上可以分为三层,即应用开发层,通信层和设备层,如图51所示。 图51CODESYS架构 软PLC开发系统实际上就是带有调试和编译功能的PLC编程软件,具备如下功能: 编程语言标准化,遵循IEC611313标准,支持多语言编程(共有5种编程方式: IL,ST,LD,FBD和SFC),编程语言之间可以相互转换; 丰富的控制模块,支持多种PID算法(如常规 PID控制算法、自适应 PID控制算法、模糊PID控制算法、智能 PID控制算法等),还包括目前流行的一些控制算法,如神经网络控制; 开放的控制算法接口,支持用户嵌入自己的控制算法模块; 仿真运行,实时在线监控,在线修改程序和编译; 网络功能; 支持基于TCP/IP网络,通过网络实现PLC远程监控,远程程序修改等。 搬运码垛机器人工作站系统采用CODESYS软PLC利用Windows实时核作为CPU,搭载倍福I/O硬件模块实现码垛系统设备的I/O控制。 CODESYS软件安装步骤如下: (1) 关闭杀毒软件,解压安装包,打开解压后的安装包,双击 setup_codeysv3.5p10Patch2,如图52、图53所示。 图52CODESYS安装包解压 图53CODESYS安装包安装 (2) 在图54所示界面,单击Install,在图55单击Next。 图54安装界面 图55操作Next界面 (3) 如图56所示,选择并接受安装条款; 如图57所示,可以安装在默认目录,也可以单击Browse浏览安装在其他目录下,但是要尽量保证安装目录是英文的。 (4) 选择要安装的CODESYS相关附属软件,如图58所示,全选并单击Next。选择默认CODESYS文件夹并单击Next,如图59所示。确认选择安装文件无误单击Next,否则单击Back,如图510所示。 图56接受安装条款界面 图57选择安装位置界面 图58选择要安装的附属软件界面 图59选择默认CODESYS文件夹界面 图510确认选择安装文件界面 (5) 经过5~10min的安装过程,会出现图511所示的界面,单击接受→Next。如图512所示,单击Finish完成软件安装。 (6) 注意安装完成后会在显示屏幕右下角出现如图513所示的三个图标,表示安装完成。 CODESYS软件程序编译、下载方法如下: 程序编写完成后,在下载之前需要对程序进行编译。编译命令对编写的程序进行语法检查,并且只编译添加到任务中的程序。编译指令不生成任何代码,只针对 POU的语法进行检查。直接执行设备登录命令,系统也将默认执行编译指令(等同于先手动执行编译命令),再编译检查没有语法错误后执行连接登录指令。CODESYS编译菜单如图514所示。 图511安装过程界面 图512完成软件安装界面 图513安装完成图标 图514编译菜单 (1) 编译: 对当前的应用进行编译。 (2) 重新编译: 如果需要对已经编译过的应用再次编译,可以通过重新编译指令进行。 (3) 生成代码: 执行此命令后生成当前应用的机器代码,执行登录命令时,生成代码默认执行。 (4) 清除: 删除当前应用的编译信息,如果再次登录设备时需要重新生成编译信息。 (5) 清除全部: 删除工程中所有的编译信息。执行编译命令后可以看到,添加到任务里面的“PLC_PRG”显示为蓝色,没有添加到任务中的则显示为灰色,如图515所示。编译指令不会对灰色的 POU进行语法检查,因为该程序单元没有处于活动状态,编译指令只针对处于活动状态的 POU进行语法检查。如果在编译的过程中发现需要运行的程序单元显示为灰色,可以检查该程序单元是否已经被成功地添加到了所需要运行的任务当中。 图515编译信息 编译命令执行完成之后可以在消息栏看到编译生成的信息,其中可以看到编译的程序是否有错误或者警告,以及错误和警告的数量。如果有错误和警告产生可以通过消息窗口进行查看和查找,根据提示信息对程序进行修改。 登录下载。登录使应用程序与目标设备建立起连接,并进入在线状态。能正确登录的前提条件是要正确配置设备的通信设置并且应用程序必须是无编译错误的。对于以当前活动应用登录,生成的代码必须没有错误并且设备通信设置必须配置正确。登录后,系统会自动选择程序下载。下载命令在线模式下有效,包括对当前应用程序的编译和生成目标代码两部分。除了语法检查(编译处理)外,还生成应用目标代码并装载到 PLC。 (1) 在线修改后登录: 选择此选项后,项目的更改部分被装载到控制器中。使用“在线修改后登录”操作,可以防止控制器进入 STOP状态。 (2) 登录并下载: 选择“登录并下载”后,将整个项目重新装载到控制器中。其与“在线修改后登录”最大的区别,是当完成下载后,控制器会停留在 STOP 模式,等待用户发送 RUN 指令,或重启控制器程序才会运行。 (3) 没有变化后的登录: 登录时,不更改上次装载到控制器中的程序。当完成下载后,需要将程序每次启动时运行,还需要单击“创建启动应用”,已编译的项目在控制器上以这种方式创建引导,即控制器再启动后,可以自动装入项目程序运行。引导项目的存储方式取决于目标系统。 5.2.3CODESYS基础编程及应用 通过对CODESYS编程软件中变量、编程指令、编程语言、程序编译下载的深入学习,掌握CODESYS基础编程方式方法并完成简单工程应用实例。 1. 了解全局变量和局部变量区别 变量的范围确定其在哪个程序组织单元中是可用的,范围可能是全局或局部。每个变量的范围 由它被声明的位置和声明所使用的变量关键字所定义。 全局变量: 在程序组织单元之外定义的变量称为外部变量,外部变量是全局变量。全局变量可以为本文件中其他程序组织单元所共用。全部程序可共享同一数据,它甚至能与其他网络进行数据交换。其原理示意图如图516所示。图中,bIn1能同时为程序A和程序B共用。 图516全局变量原理示意图 一个系统中不能有相同名称的两个全局变量。所有的全局变量都在全局变量列表中进行声明,全局变量提供了两个不同程序和功能块之间非常灵活地交换数据的方法。全局变量的关键字如下: VAR_GLOBAL <全局变量声明> END_VAR 可以通过添加全局变量列表实现全局变量的添加。鼠标选中Application,右键选择“添加对象”→“全局变量列表”,系统则会自动弹出全局变量列表,用户只需输入列表名称,单击“确认”即可,具体步骤请参考图517。 图517全局变量列表添加 局部变量: 在一个程序组织单元(POU)内定义的变量都为内部变量,它只在该程序组织单元内有效,这些变量称为“局部变量”,其结构原理图如图518所示。 图518局部变量结构原理图 使用局部变量后,在执行多个独立的程序时,编程时无须理会其他独立程序中的同名变量,它们之间没有映射关系,互不影响。局部变量的关键字如下: VAR <局部变量声明> END_VA 2. CODESYS相关编程指令 基础编程指令: (1) 位逻辑指令。位逻辑指令处理布尔值“1”和“0”的逻辑变化。CODESYS提供的位逻辑指令包括基本的逻辑运算、置位/复位优先触发器及上升/下降沿检测指令,如表51所示。 表51位逻辑指令的图形化与文本化指令表 位逻辑指令图形化语言文本化语言说明 位逻辑指令 AND与 OR或 NOT非 XOR异或 SR置位优先触发器 RS复位优先触发器 R_TRIG上升沿触发 F_TRIG下降沿触发 (2) 基本逻辑指令。基本位逻辑指令包括有“与”“或”“非”“异或”。在CODESYS中,从功能上分可以分为按位逻辑运算及布尔逻辑运算。按位逻辑运算: 对两个整型数据的相应位逐一进行布尔逻辑运算,并返回兼容的整数结果。布尔逻辑运算: 对两个布尔类型数据执行逻辑运算。 ① 按位“与”AND。功能: 按位“与”运算指令是比较两个整数的相应位。当两个数是“11”时,返回相应的结果位是“1”; 当两个数是“00”或者其中一位是“0”时,则返回相应的结果位是“0”。 ② 布尔“与”AND。功能: 布尔“与”运算用于计算两个布尔表达式的“与”结果。当两个布尔表达式都为真时,则返回为真; 其中只要有一个为假时,则返回为假。 ③ 按位“或”OR。功能: 按位“或”运算指令是比较两个整数的相应位。当两个数的对应位有一个是“1”或者是“11”时,返回相应的结果位为“1”; 当两个整数的相应位都是“0”时,则返回相应的结果为“0”。 ④ 布尔“或”OR。功能: 布尔“或”运算指令用于计算两个布尔表达式的“或”结果。当两个布尔表达式中有一个表达式为真时,则结果为真; 当两个布尔表达式都是假时,则结果为假。 ⑤ 按位“非”NOT。功能: 对逻辑串进行取反,将当前的值由“0”变“1”,或由“1”变“0”。按位“非”运算指令是将变量或常量逐一取非。 ⑥ 布尔“非”NOT。功能: 布尔“非”运算指令用于计算单个布尔表达式的结果。当输入为真时,结果为假; 当输入为假时,结果为真。 (3) 置位优先与复位优先触发器指令。在继电器系统中,一个继电器的若干对触点是同时动作的。在 PLC 中,指令是一条一条执行的,指令的执行是有先后次序的,没有“同时”执行的指令。 所以线圈格式的置位、复位指令有优先级。SR 触发器与 RS触发器的置位输入和复位输入在同一条指令里,置位和复位输入谁在指令输入端的下面谁后执行。SR 触发器为“置位优先”型触发器,当置位信号(SET1)和复位信号(RESET)同时为“1”时,触发器最终为置位状态; RS 触发器为“复位优先”型触发器,当置位信号(SET)和复位信号(RESET1)同时为“1”时,触发器最终为复位状态。置位优先SR与RS 复位优先触发器指令参数如表52所示,指令表详见表53。 表52置位优先 SR与 RS 复位优先触发器指令 功能名FBST说明 置位优先触发器SR与复位优先触发器RS SR置位优先触发器 RS复位优先触发器 表53置位优先SR与复位优先RS触发器指令参数 名称定义数 据 类 型说明 SET1输入变量BOOL置位优先命令 SET输入变量BOOL置位命令 RESET1输入变量BOOL复位优先命令 RESET输入变量BOOL复位命令 Q1输出变量BOOL输出 置位优先触发器 SR 功能: 置位双稳态触发器,置位优先。 逻辑关系: Q1=(NOT RESET AND Q1)OR SET1,其中SET1为置位信号,RESET为复位信号。当SET1为“1”时,不论RESET是否为“1”,Q1输出都为“1”; 当SET1为“0”时,如果Q1输出为“1”,一旦RESET为“1”,Q1输出立刻复位为“0”。如果Q1输出为“0”,不论RESET为“1”或者“0”,Q1输出保持为“0”。其时序图如图519所示。 图519SR置位优先触发器时序 复位优先触发器 RS功能: 复位双稳态触发器,复位优先。逻辑关系: Q1=NOT RESET1 AND (Q1 OR SET),其中SET为置位信号,RESET1为复位信号。当 RESET1 为“1”时,不论 SET 是否为“1”,Q1 输出都为“0”; 当 RESET1 为“0” 时,如果 Q1 输出为“0”,一旦 SET 为“1”,Q1 输出立刻置位为“1”。如果 Q1 输出为“1”,不论 SET为“1”或者“0”,Q1输出保持为“1”。其时序图如图520所示。 图520RS复位优先触发器时序 (4) 边沿检测指令。 边沿检测指令用来检测BOOL信号的上升沿 (信号由0→1)和下降沿(信号由1→0)的变化,如图521所示。 图521边沿信号 在每个扫描周期中把信号状态和它在前一个扫描周期的状态进行比较,若不同则表明有一个跳变沿。因此,前一个周期里的信号状态必须被存储,以便能和新的信号状态相比较。 上升沿检测 R_TRIG功能: 用于检测上升沿。当 CLK 从“0”变为“1”时,该上升沿检测器开始启动,Q 输出先由“1”然后输出变 为“0”,持续一个 PLC 运算周期; 如果 CLK 持续保持为“1”或者“0”,Q 输出一直保持为“0”。采集 bInput信号的上升沿,程序如图522所示。 图522上升沿触发程序及时序 下降沿检测F_TRIG功能: 用于检测下降沿。当CLK从“1”变为“0”时,该下降沿检测器开始启动,Q输出先由“1”然后输出变为“0”,持续一个PLC运算周期; 如果CLK持续保持为“1”或者“0”,Q输出一直保持为“0”。采集bInput信号的下降沿,当bInput由True变为False时,功能块F_TRIG.Q会根据下降沿的触发事件给出相应输出,输出时间维持在一个周期。程序如图523所示。 图523下降沿触发程序及时序 3. 梯形图编程语言 梯形图是国内应用最为广泛的编程语言,是传统PLC使用得最多的图形编程语言,也被称为PLC的第一编程语言。根据梯形图中各触点的状态和逻辑关系,求出与图中各线圈对应的编程元件的状态,称为梯形图的逻辑解算。梯形图中的某些编程元件沿用了继电器这一名称,如线圈、触点等,但是它们不是真实的物理继电器,而是一些存储单元(软继电器),每一软继电器与PLC存储器中映像寄存器的一个存储单元相对应。该存储单元如果为TRUE状态,则表示梯形图中对应软继电器的线圈“通电”,其常开触点接通,常闭触点断开,称这种状态是该软继电器的TRUE或ON状态。如果该存储单元为FALSE状态,对应软继电器的线圈和触点的状态与上述的相反,称该软继电器为FALSE或OFF状态。使用中也常将这些“软继电器”称为编程元件。 梯形图程序执行顺序: 梯形图的执行过程是按照从左至右、从上到下的顺序进行,如图524所示。 图524梯形图执行过程 执行过程包括: (1) 母线: 梯形图采用网络结构,一个梯形图的网络以左母线为界。在分析梯形图的逻辑关系时,为了借用继电器电路图的分析方法,可以想象左右两侧母线(左母线和右母线)之间有一个左正右负的直流电源电压,母线之间有“能流”从左向右流动。右母线不显示。 (2) 节: 节是梯形图网络结构中最小单位,从输入条件开始,到一个线圈的有关逻辑的网络称为一个节。在编辑器中,节垂直排列。在CODESYS中,每个节通过左侧的一系列节号标示,包含输入指令和输出指令、逻辑式、算术表达式、程序、功能或功能块调用指令、跳转或返回指令所构成。要插入一个节,可以使用命令插入节或从工具箱拖动它。一个节所包含的元素都可以通过在编辑器中拖放来进行复制或移动。梯形图执行时,从标号最小的节开始执行,从左到右确定各元素的状态,并确定其右侧连接元素的状态,逐个向右执行,操作执行的结果由执行控制元素输出,然后进行下一节的执行过程。 (3) 能流: 加粗线即为能流,可以理解为一个假想的“概念电流”或“能流” (PowerFlow)从左向右流动,这一方向与执行用户程序时的逻辑运算的顺序是一致的。能流只能从左向右流动。利用能流这一概念,可以帮助我们更好地理解和分析梯形图。 (4) 分支: 当梯形图中有分支出现时,同样依据从上到下、从左至右的执行顺序分析各图形元素的状态,对垂直连接元素根据上述有关规定确定其右侧连接元素的状态,从而逐个从左向右、从上向下执行求值过程。在梯形图中,没有反馈路径的求值不是很明确。其所有外部输入值与这些有关的触点必须在每个梯级以前被求值。 CODESYS的主要的图形符号包括: 触点类: 常开触点、常闭触点、正转换读出触点、负转换触点。 线圈类: 一般线圈、取反线圈、置位(锁存)线圈、复位去锁线圈、保持线圈、置位保持线圈、复位保持线圈、正转换读出线圈、负转换读出线圈。 功能和功能块: 包括标准的功能和功能块以及用户自己定义的功能块,如图525所示。 图525梯形图编辑器 ① 电源轨线: 梯形图电源轨线(Power Rail)的图形元素亦称为母线。其图形表示是位于梯形图左侧,也可称其为左电源母线。图526为左母线的图形表示。 ② 连接元素: 在梯形图中,各图形符号用连接元素连接,连接元素的图形符号有水平线和垂直线,它是构成梯形图的最基本元素。图527是水平和垂直连接元素的图形表示。 ③ 触点: 触点是梯形图的图形元素。梯形图的触点沿用了电气逻辑图的触点术语,用于表示布尔型变量的状态变化。触点是向其右侧水平连接元素传递一个状态的梯形图元素。触点可以分为常开触点和常闭触点。常开触点指在正常工况下,触点断开,其状态为 FALSE。常闭触点指在正常工况下,触点闭合,其状态为 True,如表54所示。 图526左母线图形表示 图527水平和垂直连接元素的图形 表54触点元素的图形符号与说明 类型图形符号说明 常开触点如果该触点对应当前布尔变量值为True时,则该触点吸合,如触点左侧连接元素的状态为True时,则状态True传递至该触点右侧,使右侧连接元素的状态为True; 反之,当布尔变量值为 False时,右侧连接元素状态False 常闭触点如果该触点对应当前布尔变量值为 False时,则该闭触点处于吸合状态,如触点左侧连接元素的状态为True时,则状态True被传递至该触点右侧,使右侧连接元素的状态为True; 反之,当布尔变量值为True时,触点断开,则右侧连接元素状态为False 插入右触点可以进行多个触点的串联,在右侧插入触点。多个串联的触点都为吸合状态时,最后一个触点才能传输True 插入并联下常开触点可以进行多个触点的并联,在触点下侧并联插入常开触点。两个并联触点中只需一个触点为True,则平行线传输True 插入并联下常闭触点可以进行多个触点的并联,在触点下侧并联入常闭触点。常闭触点默认为吸合状态,如该触点对应当前布尔变量值为 False,左侧连接元素的状态为True时,则该并联触点右侧传输True 插入并联上常开触点可以进行多个触点的并联,在触点上侧并联插入常开触点。两个并联触点中只需一个触点为True,则平行线传输True ④ 线圈: 线圈是梯形图的图形元素。梯形图中的线圈沿用了电气逻辑图的线圈术语,用于表示布尔型变量的状态变化。根据线圈的不同特性,可以分为瞬时线圈和锁存线圈,锁存线圈分为置位线圈和复位线圈。如表55所示。 表55线圈元素的图形符号与说明 类型图形符号说明 线圈左侧连接元素的状态被传递到有关的布尔型变量和右侧连接元素,如果线圈左侧连接元素的状态为True,则线圈的布尔变量为True; 反之,线圈为False 置位线圈线圈中有一个S。当左侧连接元素的状态为True时,该线圈的布尔型变量为置位并且保持,直到有复位线圈的复位 复位线圈线圈中有一个R。当左侧连接元素的状态为True时,该线圈的布尔型变量为复位并且保持,直到有置位线圈的置位 ⑤ 函数及功能块调用: 与节点和线圈一起,用户也可以插入功能块和程序。在网络中,它们必须有带布尔值的一个输入和一个输出,并可在相同位置上像接点那样使用,也就是说在 LD 网络的左侧。 4. 对象控制器系统及I/O模块 这两部分是软 PLC的核心,完成输入处理、程序执行、输出处理等工作。通常由I/O接口、通信接口、系统管理器、错误管理器、调试内核和编译器组成。 I/O接口: 可与任何I/O信号连接,包括本地I/O和远程I/O,远程I/O主要通过现场总InterBus,ProfiBus,CAN等实现。 通信接口: 通过此接口使运行系统可以和开发系统或HMI按照各种协议进行通信,如下载PLC程序或进行数据交换。 系统管理器: 处理不同任务和协调程序的执行。 错误管理器: 检测和处理程序执行期间发生的各种错误。 调试内核: 提供多个调试函数,如强制变量、设置断点等。 编译器: 通常开发系统将编写的PLC源程序编译为中间代码,然后运行系统的编译器将中间代码翻译为与硬件平台相关的机器码存入控制器。 搬运码垛机器人工作站系统总线配置采用EtherCAT技术,通过自动连接检测使设备部件的热插拔成为可能。EtherCAT技术对线型、树状、星状或菊花链状拓扑结构都可以实现。设备的连接或断开由总线管理器管理,也可以由从站设备自动实现。若用一条线缆连接EtherCAT主站上另一个(标准的)以太网端口,就简单而经济地实现了网络冗余。EtherCAT拥有多种机制,支持主站到从站、从站到从站以及主站到主站之间的通信。 ① 主站配置: 首先在设备下添加EtherCAT主站,单击“设备”,右键选择“添加设备”,当弹出添加设备窗口后,选择EtherCAT→“主站”→EtherCAT Master,单击“添加设备”。主站添加后,可以通过单击选中主站从而对其进行配置。在EtherCAT“主站”选项卡中,配置主站、分布式时钟、冗余及从站相应设置,如图528所示。 图528添加EtherCAT主站 ② 从站配置: 安装EtherCAT从站设备描述文件。为了在设备目录中插入和配置 EtherCAT 设备,主站和从站必须使用硬件提供的设备描述文件,通过“设备库”对话框安装(标准的CODESYS 设置自动地完成)。主站的设备描述文件(*.devdesc.xml)定义了可以插入的从站,从站为“xml”文件格式(文件类型: EtherCAT XML 设备描述配置文件)。 在“工具”菜单栏中通过“设备库”→“安装”选择“EtherCAT XML 设备描述配置文件(*.xml)”,找到该文件路径,选择“打开”进行安装。 添加从站设备通过选择“插入设备”,系统会自动弹出从站设备添加框,根据实际连接的从站进行添加。此外,也可以通过选中主站选项卡,单击鼠标,选择“扫描设备”进行实际从站自动扫描搜索,如图529所示。 图529添加EtherCAT从站模块 ③ EtherCAT I/O匹配: 按照图纸I/O接线图,将输入/输出点分别关联至已经组态好的I/O模块相应地址,具体步骤如图530和图531所示。 5. HMI人机界面可视化编辑 HMI人机界面可视化编辑的学习是了解CODESYS软PLC上位监控软件界面创建及编辑的方法,并绘制码垛系统HMI人机界面。 下面以创建“机器人Robot”界面为例进行说明如何创建HMI人机界面。 (1) 右键单击Mainview,选择“添加对象”,单击视图,如图532(a)所示。 (2) 如图532(b)所示,添加视图,输入人机界面名称“Robot”,确认打开,则完成机器人的可视化编辑器。 图530EtherCAT输入I/O匹配 图531EtherCAT输出I/O匹配 图532创建“机器人Robot”界面 接下来绘制Robot人机界面可视化界面: (1) 如图533所示,单击工具箱并找到指示灯元件图库,拖曳指示灯至Robot界面可视化编辑器窗口。 图533可视化编辑器指示灯工具 (2) 如图534所示,右击指示灯图标,选择指示灯背景颜色为蓝色,并关联机器人执行模式Execute_Mode变量至指示灯属性。 图534关联指示灯变量 (3) 按照以上步骤重复创建机器人监控变量指示灯,并关联机器人变量至相应指示灯。 (4) 如图535所示,单击工具箱并选择基础工具,拖曳矩形文本至可视化编辑器窗口。 图535可视化编辑器矩形文本工具 (5) 按照步骤(4)重复创建其他机器人监控变量指示灯文本,如图536所示。 图536输入指示灯相关文本 (6) 按钮创建及关联方法在此不再赘述。 (7) 按照以上步骤完成图537所示Robot人机界面可视化编辑绘制。 图537Robot人机界面可视化编辑 绘制transfer输送线可视化界面方法如下: 在Devices栏双击MainView文件夹,选择transfer界面,在打开的空白界面中按照图538所示分别添加五条输送线变频器的正转控制按钮、反转控制按钮、变频器复位按钮、低速选择按钮、高速选择按钮,运行以及报警指示灯,并关联相关属性变量完成transfer可视化界面绘制。 图538transfer界面绘制 绘制Start启动可视化界面的方法如下: ① 如图539所示,右击Mainview,创建Start启动可视化界面; ② 如图540所示,单击ToolBox,选择当前工程; 拖曳工艺流程截图至Start启动界面可视化窗口; 图539新建Start可视化界面 图540添加工艺流程图片 ③ 如图541所示,在工艺流程图背景基础上,按照码垛系统实验室实际布置的传感器及磁性开关位置,分别添加传感器及磁性开关可视化监控界面指示灯及矩形文本注释,更加直观地实现现场传感器设备的在线监控; 具体添加方法及变量关联方法按照上文介绍方式逐一添加并完成Start启动界面的绘制。 图541Start启动可视化界面 设置Start启动界面为开机启动画面。如图542所示,单击Device设备,选择目标TargetVisu界面设置,单击Start Visualization,关联Start启动界面为开机画面。 图542开机启动界面设置 可视化界面注释中英文切换: ①如图543所示,单击POUs; ②选择Global文本列表; ③在ch中文注释列分别输入注释的中文含义。 添加可视化界面背景图片: ①单击Devices; ②选择图片库; ③输入图片ID名称; ④浏览并添加背景图片; ⑤添加完成后,Link type列显示连接到文件,如图544所示。 浏览添加背景图片: ①浏览并选择相应图片; ②单击OK,如图545所示。 综合控制方案软PLC控制器的硬件平台主要可以分为如下三部分: (1) 基于嵌入式控制器的控制系统。嵌入式控制器是一种超小型计算机系统,一般没有显示器,软件平台是嵌入式操作系统(如 Windows CE、VxWorks和QNX等)。软PLC的实时控制核被安装到嵌入式控制系统中,以保证软PLC的实时性,开发完的系统通过串口或以太网将转换后的二进制码写入对象控制器中。 (2) 基于工控机(IPC)或嵌入式控制器(EPC)的控制系统。该方案的软件平台可以采用Windows操作系统(Windows XP Embedded、Windows 7 等),通用I/O总线负责将远程采集的I/O 信号传至控制器进行处理,软PLC可以充当开发系统的角色及对象控制器的角色。目前市场上越来越多的用户更倾向于直接使用面板型工控机进行控制的方案,这样的方案直接集成了HMI,开发系统及对象控制器的功能,大大降低了成本。 (3) 基于传统硬PLC的控制系统。此方案中,PLC开发系统一般在普通PC上运行,而传统硬PLC只是作为一个硬件平台,将软PLC的实时核安装在传统硬PLC中,将开发系统编写的系统程序下载到硬PLC中,其与控制系统图的区别是将图中的嵌入式控制器替换成传统硬PLC。 图543可视化界面中英文注释 图544背景图片添加 图545浏览添加背景图片 6. CODESYS软PLC码垛工作站编程 了解码垛工作站编程思路及程序架构,熟悉Main主程序、FB功能块、FC程序块创建及编写方式方法,利用所学的CODESYS基础编程知识完成码垛工作站编程工作。学习新建CODESYS工程项目的步骤,熟悉码垛工作站系统PLC程序架构,掌握CODESYS软PLC的FB功能块形参变量的创建方法以及输送线、气缸、机器人等FB功能块程序的编程方法。 (1) 新建CODESYS工程项目。如图546所示,按照图片所示步骤,可以完成工程项目创建。 图546新建CODESYS工程项目步骤 (2) CODESYS工程程序架构。如图547(a)所示,Device设备树涵盖了整个工程项目的所有设备信息,Program文件夹包含FB功能块、Main主程序等程序段,图547(b)与电气图纸中倍福模块组态分布保持一致,模块所有信息与控制柜内各模块完全对应,正确的配置保证了组态的顺利完成。 图547CODESYS工程程序架构 (3) 创建变量表。新建码垛工作站工程第一步需要根据电气图纸PLC输入/输出模块接线图,创建GVL全局变量表(图548)、Input和Output变量表(图549),以及机器人通信I/O变量表(图550)。 图548GVL全局变量表 创建I/O变量表有两种方式,可在右上角进行切换,在此不再赘述。 (4) 编写FB功能块。编写系统控制FB块程序如图551所示。编写系统控制功能块程序,完成启动、暂停、停止按钮及按钮灯,以及塔灯各状态相关逻辑。 编写新松机器人FB块程序: 首先按照图552所示步骤创建新松机器人FB块形参变量表; 然后用上面新建的机器人FB块形参变量按照图553所示步骤编写机器人FB块梯形图逻辑程序。 图549Input输入变量表与 Output输出变量表 图550机器人通信I/O变量表 图551系统控制功能块逻辑程序 图552创建新松机器人FB功能块变量表 图553新松机器人FB功能块程序 编写气缸FB功能块程序: 首先按照图554所示步骤创建气缸FB功能块形参变量表; 然后用上面新建的机器人FB块形参变量按照图555所示步骤编写气缸FB功能块梯形图逻辑程序。 图554气缸FB功能块形参变量表 图555气缸FB功能块程序 编写线体FB功能块程序: 首先按照图556所示步骤创建线体FB功能块形参变量表; 然后用线体FB功能块形参变量按照图557所示步骤编写线体FB功能块梯形图逻辑程序。 图556线体FB功能块变量表 图557线体FB功能块逻辑程序 编写Main主程序段逻辑。码垛工作站系统自动运行需要控制的设备分别有: ① 新松机器人一台。CODESYS软PLC需要在自动运行过程中,调度机器人完成码垛及拆垛作业。 ② 输送线体变频器五台。在传感器、气缸或者衔接的其他变频器达到固定的某种状态时启停变频器,在此仅以输送线1为例介绍相关程序编写方法,其他输送线体程序请参照CODESYS最终程序或者实验报告。 ③ 气缸电磁阀若干。在自动运行过程中,PLC需要在传感器或者变频器反馈信号达到某种固定的状态时伸出或者缩回气缸,在此仅以侧推气缸1为例介绍相关程序编写方法,其他气缸程序请参照CODESYS最终程序或者实验报告。 输送线体主程序。如图558所示,E_Roller_Line中的run condition引脚关联输送线1自动运行的触发条件,系统自动运行时输送线1即自动运行,当输送线2始端传感器被触发,将标志位M_mark1置位,输送线1停止,当工件到达侧推气缸工位并被推出至侧推气缸伸出到位位置,磁性开关信号将M_mark1标志位复位,输送线1继续运行。 图558输送线体1主程序 侧推气缸主程序。如图559所示,Cylinder中的Up_condition引脚、Down_condition引脚关联气缸1自动伸出、自动缩回的触发条件,系统自动运行时,当输送线2末端传感器被触发并且移栽机气缸处于落下状态时,满足侧推气缸伸出条件,侧推气缸动作伸出,当侧推气缸伸出到位磁环触发延时1s,满足侧推气缸缩回条件,侧推气缸动作缩回,当下一个工件到达末端传感器被触发并且移栽机气缸处于落下状态时,侧推气缸再次伸出,由此往复。 图559侧推气缸主程序 机器人调度主程序。如图560所示,系统自动运行时,当挡停工位有料传感器被触发并且线体4夹紧位传感器被触发时,满足阻挡气缸伸出条件,阻挡气缸动作伸出。当线体4末端位传感器有料并且挡停工位无料时,满足阻挡气缸缩回条件,阻挡气缸动作缩回,当下一个工件到达挡停工位且满足条件时,阻挡气缸再次伸出,如此往复。阻挡气缸自动运行程序编写步骤同侧推气缸。 图560机器人调度主程序