树莓派PLC入门(3) - 通过树莓派PLC控制继电器发表时间:2019-10-29 15:47网址:http://www.nxtrol.com/raspberrypi_plc_03.html 本章节我们主要介绍树莓派PLC的基础外设应用案例,在实验过程中,我们将逐步学习到如何使用IEC61131-3编程工具LogicLab对树莓派PLC的外部I/O信号进行简单的控制,本章节使用的设备仅仅作为实验室演示使用,请勿在较复杂的工业环境中进行应用,系统架构如下图所示: 本章节我们使用到的设备有:
设备安装 首先我们将树莓派硬件与RPi Relay Board安装在一起,如下图所示: 继电器信号确认 根据RPi Relay Board设备信号描述,我们获得如下信息:
注意在树莓派PLC中已经集成了访问扩展I/O引脚的驱动,不需要按照RPi Relay Board描述文档中进行操作,请按照本文如下章节步骤进行实验即可。 LogicLab树莓派继电器输出信号配置 在LogicLab中新建工程,并按照前面章节描述设定通讯参数,在树莓派资源Resource界面选择我们当前使用的树莓派3,如下图所示: 通过如下四个步骤就可以完全设定PLC变量与继电器信号的关联: 可以切换到工程视图,上述步骤4定义的PLC变量已经默认添加到工程的”I_O_mappings”全局变量表格中: 编写IEC61131-3 PLC逻辑简单控制继电器 由于继电器是使用开关信号进行控制,因此这里我们使用梯形图LD来对其进行简单控制更加直观方便。在LogicLab的工程视图rpi_io_relay下右键添加一个程序(Program),名称为:io_relay,并将其指定由Background任务执行,如下图所示: 这里我们并不详细介绍如何使用梯形图LD编程方法,具体关于梯形图LD的详细使用说明请参阅如下文章: IEC61131-3 PLC编程入门(x) - 梯形图LD编程
在如下图示的代码逻辑中已经添加了3个BOOL类型局部变量Control1, Control2, Control3并且将触点Contact与其关联,在3行梯形图中分别通过Relay1, Relay2, Relay3关联的线圈Coil控制这三个继电器,如下图所示: 由于继电器控制信号为低电平使能,因此Relay1, Relay2, Relay3的线圈类型为取反线圈,因此当Control1为FALSE或者0时,由于Relay1线圈类型为取反线圈,因此Relay1输出值为TRUE,因此最终输出到树莓派外扩GPIO的PIN37为高电平,当Control1为TRUE或者1时,Relay1输出值为FALSE因此最终输出到树莓派外扩GPIO的PIN37为低电平,继电器的硬件常开触点闭合,常闭触点断开,使得外部电路通断状态发生改变。在这里我们可以在调试模式下双击Control1, Control2或者Control3触点,在线修改其变量值为0(等同FALSE)或者1(等同TRUE)从而来验证上述思路: 通过强制值,我们可以听到继电器开关的声音以及对应的LED指示灯会进行变化,如果此时在继电器上有外接信号,那么对应的信号状态也会发生改变。 本章小结 在本章节的学习过程中,我们通过树莓派PLC的编程环境LogicLab编程工具对树莓派扩展IO信号进行了配置,从而通过编写梯形图LD程序成功对三路继电器进行简单控制,以及通过在线调试方式对继电器动作进行控制,在实际PLC现场应用将比本章节内容复杂得多,但是对于外部I/O的控制方式都是非常类似,本章节的实战练习仅仅只是非常初级入门学习,仅供参考。
|