TIA使用SCL做交通信号灯带倒计时闪烁控制

news/2024/11/27 16:14:29/文章来源:https://www.cnblogs.com/fishingsriver/p/18572524

继续练习SCL编程,按照前面第2个练习的要求,使用SCL实现红绿黄等倒计时还有5秒进行闪烁。

前面程序新建一个SCL编程的FB,建立下面的变量

写下面的SCL程序

IF #stopbtn = 1 THEN
#CurrentState := 4;
END_IF;
IF #startbrn = 1 THEN
#CurrentState := 1;
END_IF;
(*红灯控制*)
IF #CurrentState = 1 THEN
#RedLight_in := 1;
IF NOT #RedLightsparkle THEN
#RedLight := 1;
ELSE
#RedLight := 0;
END_IF;
#RedLightTime:=T_SUB(IN1 := #RedLightDuration, IN2 := "RedLight_TON3".ET);(*计算剩余时间*)
IF #RedLightTime <= t#5s AND "Clock_0.5Hz" THEN
#RedLightsparkle := 1;
ELSE
#RedLightsparkle := 0;
END_IF;
ELSE
#RedLight_in := 0;
#RedLight := 0;
END_IF;
"RedLight_TON4".TON(IN:=#RedLight_in,
PT:=#RedLightDuration);
IF "RedLight_TON3".Q THEN
#CurrentState := 2;
END_IF;
(*绿灯控制*)
IF #CurrentState = 2 THEN
#GreenLight_in := 1;
IF NOT #GreenLightsparkle THEN
#GreenLight := 1;
ELSE
#GreenLight := 0;
END_IF;
#GreenLightTime := T_SUB(IN1 := #GreenLightDuration, IN2 :="GreenLight_TON4".ET);(*计算剩余时间*)
IF #GreenLightTime <= t#5s AND "Clock_0.5Hz" THEN
#GreenLightsparkle := 1;
ELSE
#GreenLightsparkle := 0;
END_IF;
ELSE
#GreenLight_in := 0;
#GreenLight := 0;
END_IF;
"GreenLight_TON4".TON(IN:=#GreenLight_in,
PT:=#GreenLightDuration);
IF "GreenLight_TON4".Q THEN
#CurrentState := 3;
END_IF;
(*黄灯控制*)
IF #CurrentState = 3 THEN
#yellowLight_in := 1;
IF NOT #YellowLightsparkle THEN
#YellowLight := 1;
ELSE
#YellowLight := 0;
END_IF;
#YellowLightTime := T_SUB(IN1 := #YellowLightDuration, IN2 := "YellowLight_TON4".ET);(*计算剩余时间*)
IF #YellowLightTime <= t#5s AND "Clock_0.5Hz" THEN
#YellowLightsparkle := 1;
ELSE
#YellowLightsparkle := 0;
END_IF;
ELSE
#yellowLight_in := 0;
#YellowLight := 0;
END_IF;
"YellowLight_TON4".TON(IN := #yellowLight_in,
PT := #YellowLightDuration);
IF "YellowLight_TON4".Q THEN
#CurrentState := 1;
END_IF;

在OB1调用这个FB

在WINCC建立变量,关联M1.6和M1.7,WINCC画面放置按钮,用于启动停止功能,关联前面建立的变量,鼠标按下变量为1,鼠标弹起变量为0

保存运行wincc,启动控制功能,就可以看到效果了。

WINCC这边设置比较简单,我就不做截图了。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/842344.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CudaSPONGE高性能GPU分子模拟

本文简单介绍了一下CudaSPONGE高性能分子动力学模拟软件,其基于原生的CUDA C开发,具有极高的模拟效率。结合前处理工具Xponge用于生成和处理输入文件,可以很好的兼容目前常用的很多力场形式。技术背景 CudaSPONGE是基于CUDA C开发的一款纯GPU分子动力学模拟软件,具有模块化…

杭州数据恢复之杂牌U优盘损坏电脑不识别拆解芯片怎么恢复数据

这是一个32G的杂牌U优盘,突发损坏无法正常识别。U盘内存卡SSD固态硬盘等这类Flash存储介质损坏很多都是突发的,没有故障征兆。U盘经过检测能正常加电,没有短路,通过程序能读取到是慧荣的主控方案。这是个非常典型的固件损坏案例,需要读取芯片进行恢复,首先我们把存储芯片…

摄像机实时接入分析平台视频分析网关拍照检测视频监控系统中人脸识别技术的具体应用建议

在智能化监控系统的构建中,人脸识别技术的应用日益广泛,尤其在安全监控、人流管理等方面发挥着重要作用。为了确保人脸识别系统的有效性和准确性,必须对环境、行人以及摄像头的设置有明确的要求和建议。本文将详细介绍人脸识别系统在实际应用中的环境和安装要求,以及摄像机…

线性时间选择[C++,附代码]

0 引言 问题:从无序数组中选择第k小的元素。 1 随机选择法 1.1 算法步骤:选择基准元素:随机选择一个元素作为基准。分区:对数组进行分区,使得基准元素左边的所有元素都小于它,右边的所有元素都大于它。分区过程完成后,我们得到了基准元素在数组中的位置pivotIndex。递归…

11.27 模拟赛

复盘 T1 一眼不会。模拟样例的时候好像得到了一个对于每次询问 \(\mathcal O(n)\) 做的暴力算法。不太清楚。 画了点图。差不多得到一点想法。发现用 set 维护连通块,总复杂度 \(\mathcal O(n \log^2 n)\),1e6 肯定过不去。但应该能过 80。写写试试。 然后写了一坨。实际上这…

fastadmin更改上传附件数据库为附件ID

1.后台返回值加入ID application/admin/controller/Ajax.php文件中upload()方法,2处返回值加上附件ID 这样上传文件后,返回值便会多出file_id字段 2.比如添加商品页面 上传商品图,得到file_id;

联想拯救者 Y7000P 2019 PG0 黑苹果

帮小老弟把Y7000P 2019 PG0笔记本安装了黑苹果系统,参考了GITHUB上的一些资料,并对OC EFI进行调整,以兼容macOS15.x参考链接:https://github.com/xiaoMGitHub/LEGION_Y7000Series_Hackintosh/tree/master

Arch linux下把chromeOS安装至btrfs子卷

旧的ChromeOS单独划分一个ext4分区安装,划分的是ChromeOS可用的最大空间,当存储未用满时,这个ChromeOS独占的分区就有很大的浪费。最近Brunch的作者发布了linux安装工具Linuxloops,可以把ChromeOS安装到Btrfs子卷。Linuxloops采用了图形安装界面,不需要提前下载Brunch及Ch…

ZW3DC++调用C#的DLL

C#: using System;using System.Collections.Generic;using System.Text; namespace TestWinform{ public class Class1 {public void openForm() { Form1 form = new Form1(); form.ShowDialog(); }}}C++: #using "C:\\Test…

Windows 10应用商店找回方法

应用商店(Microsoft Store)作为Windows 10系统的重要的组成部分,为用户提供了一个便捷的平台来浏览、下载和安装各类应用程序。 通过Windows PowerShell重新安装应用商店 1:以管理员身份运行Windows PowerShell在Windows 10的任务栏搜索框中输入“Windows PowerShell”。 右…

超详细!Apache Maven下载安装使用教程

前言 在当今的软件开发领域,尤其是基于 Java 平台的项目开发过程中,拥有一款高效、便捷的项目管理工具至关重要。本篇文章将聚焦于在 Windows 10 系统下,为大家详细介绍 Apache Maven 的下载与安装教程,帮助大家轻松上手这款功能强大的工具,更好地管理和构建 Java 项目。 …

新兴数据仓库设计与实践手册:从分层架构到实际应用(三)

本手册将分为三部分发布,以帮助读者逐步深入理解数据仓库的设计与实践。第一部分介绍数据仓库的整体架构概述; 第二部分深入讨论ETL在数仓中的应用理论,ODS层的具体实现与应用; 第三部分将围绕DW数据仓库层、ADS层和数据仓库的整体趋势展开;通过这样的结构,您可以系统地学…