嵌入式信号系统设计

2020-11-27 03:24:32王慧
科学技术创新 2020年33期
关键词:梯形图编辑器信号灯

王慧

(西南交通大学,四川 成都611756)

1 概述

现在,十字路口的交通信号灯的计时功能还不完善,不管是在上下班高峰期还是非高峰期,路口的交通灯计时,时间一直是不变的,不能够根据各个方向的交通情况进行实时调整,这样的设定方式无法灵活控制各个方向的交通拥挤情况,一定程度上加剧了道路拥挤状况。目前,在大型十字路口主要依靠交通警察景行人工调整红绿灯显示时间,人工不能够一天24 小时的对车流量人流量进行实时调整。想用嵌入式来实现交通信号的控制,是因为嵌入式信号系统实现行人,机动车和非机动车的有序运行,减轻交通压力,提高道路的通畅度和交通安全性。现在是智能化交通,将交通情况通过网络传回指挥中心,以便于决策系统。利用嵌入式系统,计算机可以下发指令实现远程控制红绿灯时长[1]。

2 树莓派的开发

Raspberry Pi 是基于ARM的微型电脑主板,它的内存硬盘为SD/MicroSD 卡,卡片主板有4 个USB 接口,可以外接鼠标、键盘等,一个以太网接口,同时还有HDMI 高清视频输出接口,为学习计算机编程教育而设计,它是只有信用卡大小,它相当于一个小型电脑,其系统是基于Linux 操作系统的。本项目采用的是树莓派3 代B+。3 代B+型有一个1.4GHZ 的64 位处理器,相比于B 型增加了5GHz 的双频wifi 网络,变为2.4GHz 和5GHz双频无线网。双频无线网使得上网速度更快。有线网络为千兆以太网(最大吞吐量为300Mbps),并且能够通过额外的HAT 以太网供电[2]。

在树莓派官网上下载最新的树莓派系统镜像文件Raspbian,下载安装镜像的工具Win32DiskImager,在树莓派上安装好操作系统。利用网线将树莓派与电脑连接起来。打开putty这个软件,输入用户名与密码,Putty 是一个ssh“终端软件”,连接的是远程的ssh 服务(或者是internet 服务),“远程”在这里就是树莓派。第一次进入这个界面会有raspi-config 配置,在这里可以对树莓派进行系统设置,例如:可以更改中文设置,地域和时间及登入密码及wifi 设置等。

3 基于Linux 的软PLC 开发

PLC 控制系统,又称为可编程逻辑控制器[3]。本项目是采用软PLC 来进行设计的。现在信号灯是由继电器控制,在控制过程中会产生强耦合,这样导致编程很难编写。PLC 编程方法简单,大多采用梯形图进行编程。这种梯形图类似于继电器控制线路的梯形图,采用人们熟悉的常开触点、常闭触电、线圈等符号,比较容易去学习。而且,PLC 出故障几率也比较小,并且具有完善的诊断及显示功能,很容易找出故障点,维修简单[4-5]。

OpenPLC 的一项主要是致力于IEC61131-3 的活动,它是工控编程唯一的全球标准,它支持四种编程语言:IL(指令表语言)、LD(梯形图语言)、FBD(功能块图语言)和ST(结构文本语言)。

OpenPLC 项目由三部分组成:运行环境,编辑器和HMI Builder。运行时应安装在自己的设备上,再此项目中是安装在树莓派中,并负责执行PLC 程序。编辑器是在自己的计算机上运行的软件,用于创建PLC 程序。最后,ScadaBR 是HMI Builder。使用ScadaBR,自己可以创建漂亮的基于Web 的动画,以反映程序过程的运行状态。ScadaBR 通过Modbus / TCP 与OpenPLC Runtime 通信。OpenPLC 是一个基于易于使用的软件的开源可编程逻辑控制器。

3.1 OpenPLC 运行环境

必须在自己的设备上安装OpenPLC Runtime 才能执行PLC程序。OpenPLC Runtime 支持多个嵌入式系统平台,也可以作为软PLC 安装在Windows 和Linux 机器上。登入安装PLC 步骤的的网址,首先要安装运行环境,点击runtime,选择嵌入式平台点击树莓派图标,根据所示步骤在操作终端输入对应指令,此时树莓派应该是处于联网状态的。

安装运行环境大约1 个多小时,OpenPLC 运行时有一个内置的web 服务器,允许配置OpenPLC 并上传新的程序供其运行。可以通过打开计算机上的web 浏览器并在端口8080 输入OpenPLC 设备的IP 地址来访问此web 服务器。

3.2 OpenPLC 编辑器

OpenPLC Editor 是一个允许为OpenPLC 运行时编写PLC 程序的软件。程序根据IEC 61131-3 标准编写。要新建项目,必须要安装好OpenPLC 编辑器。要进入“OpenPLC Editor”下载编辑器软件。在任何情况下,都不应该在Raspberry Pi 本身上运行编辑器,除非有很大的耐心,并且不建议,因为性能不好。编辑器应该在功能更强大的桌面公司上运行。 因此自己下载的windows版,下载完成后,在编辑器中创建项目后,只需生成ST 文件(文件→生成程序)并通过Web 界面上载生成的ST 文件到树莓派运行环境中。

3.3 ScadaBR 的安装及启动

ScadaBR 是一个开源的监控和数据采集(Scada)系统,允许自己为自动化项目创建交互式屏幕,也称为人机界面(HMI)。ScadaBR 可以与几种不同的PLC 通信,包括OpenPLC,这使它成为OpenPLC 运行时和编辑器的完美伴侣。安装ScadaBR 最简单的方法是使用虚拟机。虚拟机是一种可以在自己的计算机内创建虚拟计算机的软件。安装VirtualBox 后,自己只需将 ScadaBR 映像文件加载到VirtualBox 中,即可在系统上使用即用型ScadaBR 环境。

4 树莓派运行结果

4.1 OpenPLC 控制的交通信号灯控制电路的I/O 地址编号(见表1)

表1 OpenPLC 控制的交通信号灯控制电路的I/O 地址编号

4.2 OpenPLC 控制交通信号的原理图

图1 OpenPLC 控制交通信号灯梯形图

图示所实现的功能为南北方向绿灯亮25s,南北方向黄灯亮5s,东西方向红灯亮30s。南北方向红灯亮30s,东西方向绿灯亮25s,东西方向黄灯亮5s。

4.3 OpenPLC 仿真运行图

通过单击工具栏上的“启动PLC 模拟”来模拟程序的运行过程。编译成功,OpenPLC 编辑器将开始运行此程序。单击左侧面板上的Debug 实例来查看程序的电流,绿色的线被激活,黑色的线不被激活。我通过右键单击并选择强制True 或强制False 来强制激活或取消激活触点。除了以图形方式查看图表上的电流之外,还可以在屏幕右侧的调试器面板中跟踪程序的每个变量中的数据。如图2 仿真图所示。

图2 OpenPLC 仿真运行图

此仿真图实现的功能为:

0-25 秒:lamp0、lamp5 亮,其它灭

25-30 秒:lamp1、lamp5 亮,其它灭

30-55 秒:lamp2、lamp3 亮,其它灭

55-60 秒:lamp2、lamp4 亮,其它灭

最后,在创建并测试了程序之后,最后一步是以OpenPLC Runtime 可以理解的格式生成程序。为此只需在工具栏上单击“ 为OpenPLC 运行时生成程序”,然后将.st 文件保存在计算机上。此文件是使用OpenPLC Runtime 可以理解的语言编写的梯形图逻辑程序。稍后使用OpenPLC 的Web 界面上传此.st 文件。

4.4 OpenPLC 交通信号运行环境图

在树莓派浏览器中输入树莓派IP 地址的名称,192.168.137.165:8080,在此将进入登入界面,将上传到PLC 运行环境中的文件进行编译,如果代码没有错误,它将运行成功,在面板中还可以查看“查看PLC 日志”如图3 所示。可以确定一切都运行良好。

图3 运行日志

5 树莓派与PC 数据传输

OpenPLC 使用Modbus/TCP 进行Scada 通信。Modbus 是业界最常用的协议之一,是开源和免版税的。这使得OpenPLC 几乎与现有的任何Scada 软件兼容。ScadaBR 是免费的开源软件,用于开发自动化,数据采集和监控应用[6]。

在Raspberry Pi 上运行OpenPLC,它已经是一个modbus 从设备。基本上,modbus 只是一个读写PLC 存储器的协议。OpenPLC 应用程序在自己的Raspberry Pi 上运行。OpenPLC 可以在许多平台上运行,包括Windows 或Linux 计算机。无论在哪里运行,ScadaBR 都会与OpenPLC 应用程序进行通信。自己所要做的就是添加运行OpenPLC 的机器的正确IP 地址,并确保OpenPLC 运行时正在运行。在顶部菜单上转到数据源并添加Modbus IP 设备。将其命名为自己想要的任何名称,将轮询频率更改为更小的值(默认值为5 分钟),自己设置的时间为1 毫秒,为自己的OpenPLC 添加IP 地址并将连接类型更改为TCP +保持活动状态[7]。

5.1 交通信号灯的数据传输

首先将虚拟机,树莓派,电脑,三者处于同一局域网,这时候就要设置树莓派的无线IP 地址,将树莓派的IP 地址设置为192.168.43.2,此时虚拟机的IP 地址为192.168.43.9。此时已经保证三者处于同一局域网。

打开Scada 添加数据源,选择添加类型为Modbus IP 协议,添加树莓派的IP 地址为192.168.43.2,它的连接端口为502,名称可以任意填写,需要添加数据点,我添加了6 个数据点,每个数据点有不同的偏移量,以此对应不同的信号灯显示情况,运行OpenPLC,在观察清单中可以查看6 个数据点的运行情况,如图4 所示。可以点击查看点的详细运行情况,如图5 所示。

图4 观察清单

图5 502 端口运行状态

5.2 模拟数据传输

首先需要安装一个依赖,将树莓派联网后,打开命令行窗口,执行sudo pip install pymodbus 进行安装。之后新建一个python 文件,用来写modbus 协议文件。客户端的IP 地址写之前设置的无线地址,为192.168.43.2,如图6 所示。然后编写一个文档file1.txt,文档里面是关于天气状况的数据。打开命令行窗口,cd 到这两个文件所在路径,输入sudo python plc_modbus_tcp.py 就可以了,将进行读取数据,如图7 所示。在之前设置的数据源中新添加一个数据点,用来模拟数据传输。py 程序实现的功能是:读取file1.txt 文件的数据,然后反复的以1hz 频率发送至plc 的holding register 的0 地址。如图8 所示。

图6 python 建modbus 协议

图7 执行python 文件

图8 读取数据

6 结论

本项目实现了利用基于Linux 的软PLC 实现对交通信号的控制。根据设计要求,设计完成OpenPLC 编写控制信号灯梯形图,经过仿真,设计能到达目标要求,实现对交通信号灯的软件控制。利用Modbus TCP 实现模拟数据传输,能够在Scada 中显示,并且实现交通信号灯的数据传输。利用嵌入式交通信号系统缓解了城市交通拥挤问题,提高城市交通运行效率,能够适应未来的城市交通的发展。随着嵌入式信号系统的发展及普及在将来的发展中逐渐成为主流,在市场上很有竞争力。

猜你喜欢
梯形图编辑器信号灯
交通信号灯
你距离微信创作达人还有多远?
车辆段收发车运行图编辑器的设计与实现
信号灯为什么选这三个颜色?
基于VC的梯形图编程软件开发技术
继电器电路转为梯形图教学经验浅谈
电子制作(2016年15期)2017-01-15 13:39:28
安装在路面的交通信号灯
华人时刊(2016年19期)2016-04-05 07:56:05
PLC梯形图程序设计技巧及应用
基于VLIW目标机的ELF二进制编辑器设计与实现
交通信号灯控制系统设计