APP下载

基于力控组态软件实现交通灯倒计时界面控制的实训方案设计

2023-07-26余璐姚成

电脑知识与技术 2023年16期
关键词:交通灯绿灯脚本

余璐,姚成

(安徽财贸职业学院,安徽 合肥 230601)

交通灯控制实训是电子信息类课程实训中经常使用的案例之一。本文通过国家、公安部对交通灯控制时间和倒计时显示要求,利用Forcecontrol V7.1 设计图形界面,使用不同的方法编写脚本,以实现可以实时设置倒计时时间、动态显示交通灯的效果,使实训者加深了对交通灯控制的认识和脚本代码编写方法的掌握,为后续连接PLC 或者单片机,实现实际控制奠定基础。

1 交通灯力控组态实训方案设计

1.1 实训方案设计意义

在电子信息控制类课程的教学中,有基于PLC、单片机、FPGA等的交通信号灯实训设计,通过实训加深了对这些技术的理解,提高编程能力,提高学习兴趣。因此,开发基于力控组态软件的交通灯控制实训具有实用价值。利用力控组态软件设计界面,通过窗口动作、后台组件定时器和累计器属性变化动作等三种不同事件过程的脚本编写,实现相同的功能,并比较各自优缺点,从而掌握这些对象的使用和提高编程技巧。

1.2 实训方案设计依据

依据《道路交通信号灯设置与安装规范》(GB 14886-2016)[1]和《道路交通信号倒计时显示器》(GA/T 508-2014)[2]利用力控ForceControl V7.1模拟交通灯控制,其中转换示意图如图1所示,采用双位倒计时器。红灯时长一般不超过90秒,利用RSZ中间整型变量设置,例如设置为30秒;绿灯时长一般为30秒及以上,利用GSZ 中间整型变量设置,例如设置为27 秒,其中连续24秒、闪烁3秒;黄灯时长3~5秒,设置为3秒,一次循环RSZ+GSZ+3秒,例如60秒。时序图如图2所示。

图1 机动车信号灯灯色转换示意图

图2 交通灯控制南北方向时序图

2 交通灯力控组态实训界面设计[3]

界面设计采用力控Forcecontrol V7.1 组态软件实现,通过新建工程,进入开发系统,建立窗口界面,从工具箱拖拽基本图元并置于窗口适当位置,搭建好组态画面如图3所示。其中红绿灯效果实现使用了图库里的红绿灯和椭圆的组合功能,利用椭圆遮罩的显示和隐藏来显现红、黄、绿灯。然后从文本控件TexRSZ、TexGSZ 录入红灯、绿灯定时时间,在开始按钮的左键动作中设置开关控制信号,在停止的左键动作中设置中止信号。运行效果见图4。对象属性设置如表1所示。

表1 交通灯力控组态界面属性设置表

图3 交通灯力控组态界面

图4 运行效果

3 交通灯力控组态实训脚本设计的三种方案

3.1 利用窗口动作实现交通灯控制脚本设计

首先如图5 新建5 个中间变量,利用文本控件TexRSZ(其模拟输入输出变量为RSZ) 和TexGSZ(其模拟输入输出变量为GSZ) 设置红灯、绿灯定时时间,利用遮罩的显示和隐藏来显示红、黄、绿灯,在开始按钮的左键动作中置KZ 变量为1,开始计数,在停止按钮的左键动作中置KZ 变量为0,停止计数。循环执行。根据时序图编写脚本,具体操作步骤:执行菜单“功能”→“动作”→“窗口动作”菜单命令,打开脚本编辑器,编写相关脚本如下。

图5 定义中间变量

图6 定时器后台组件

3.2 利用定时器属性变化动作实现交通灯控制脚本设计

界面设计和新建中间变量与方法一相同。其他操作步骤:从“工程”窗口,双击“项目”→“后台组件”打开后台组件窗口,双击“定时器”。

右边“后台组件”窗口,此时已经添加了定时器模块[4],用同样方法添加另外两个定时器,并命名为TimerR、TimerG和TimerY。分别单击“属性列表”中的RunTime和Status属性,打开“变量属性设置”窗口,如图7所示。在红灯定时器的Status“属性变化脚本”中编写代码,用于判断其是否定时时间到,如果到了,关闭红灯定时器,打开绿灯定时器,以此类推,循环执行。在RunTime“属性变化脚本”中编写功能代码,这样就可以利用三个定时器完成相互配合实现三色灯的切换功能。相关脚本如下:

图7 定时器和关联属性的调出

3.3 利用累计器和定时器属性变化动作实现交通灯控制脚本设计

首先需要在方法二的变量基础上新建一个实型的数据库变量KG.PV(开关),连接GroJTD交通信号倒计时灯智能单元和开始停止按钮。接着调出后台组件通用控件中的累计器组件[5]。因为累计器都是以秒为单位的,所以,还需要添加定时器解决绿灯3秒长度的0.5秒闪烁。相关脚本如下:

4 结束语

本文重点探讨了力控组态交通灯控制实训方案设计,叙述了界面设计过程、窗口动作和对象属性变化的触发条件以及脚本的编写方法。其中脚本设计采用了三种不同的方案,方法一利用窗口动作实现红绿灯控制,虽然该方法容易理解,但是必须将窗体运行扫描时间设为500毫秒,这样会影响其他对象的需求,例如影响Modbus 通讯的速度。方法二利用定时器实现交通灯控制,该方法将控制过程分散到各个定时器的属性变化脚本中,虽然代码不集中,但是不影响其他对象的需求。方法三利用累计器实现交通灯控制,同样也是分散到属性变化脚本中,由于累计器的时间为1秒,要实现绿灯0.5秒闪烁,还是要利用定时器。因此,笔者认为三种方法中,以第二种方法为最佳。

在实训过程中通过引导实训者自行尝试、实践试错、修正解决等方式一步步完成实训任务。从而提高学习兴趣和动手操作能力。该实训设计灵活开拓了相同效果的不同实现方式,既达到了学习力控组态设计方法,又开拓了发散思维能力。最后,如果增加东西方向红绿灯控制,以及通过IO设备和数据库组态实现力控与PLC等连接,便可实现交通灯实际控制。如果利用传感器采集路口交通信息,通过大数据分析处理后,实时改变时间控制变量,将更加具有实际工程应用价值。该实训方案设计可用于相关专业学生的课程设计、毕业设计。

猜你喜欢

交通灯绿灯脚本
酒驾
为什么红灯停,绿灯行
基于单片机的交通灯控制系统设计
数据库系统shell脚本应用
快乐假期
一直飘红的交通灯
基于单片机的LED模拟交通灯设计
基于protues仿真的交通灯即时控制的一种实现
一路绿灯 一路关爱
红灯与绿灯