网站首页 > 技术文章 正文
博途---使用SCL语言编写阀门控制程序
一、SCL 编程语言介绍
SCL(Structured Control Language,结构化控制语言)是一种基于 PASCAL 的高级编程语言。 这种语言基于标准 DIN EN 61131-3(国际标准为 IEC 1131-3)。根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。 SCL 编程语言实现了该标准中定义的 ST 语言 (结构化文本) 的 PLCopen 初级水平。S7-1200从V2.2版本开始支持SCL语言。
二、阀门控制程序编写思路
前段时间使用200smart编写了阀门控制程序,后面发现还是有不少问题的,比如不能多次调用,逻辑啰嗦等;自己抽空又用博途SCL语言编写了一个阀门控制程序,经过仿真测试发现程序可以多次调用,并且个人觉得还是很实用的。
根据上一次的经验,这次的思路大体就是,当HMI按下阀门开按钮后,阀门开输出变为TURE,同时开阀报警延时计时器开始计时,阀门在设定的时间内没有打开,那么触发报警,报警后需要手动进行复位;关阀的思路同开阀思路一样。
这次新增了一个阀门状态位,建了两个变量,一个是字符串,一个是字节;字符串可以直观的看到阀门开关状态,字节在不同的状态位输出不同的数字。
另外上一次有小伙伴留言想要写成中文的,这次的大部分内容还是中文的,小部分中文表示太长了,还是使用英文表示,请谅解。
三、阀门控制程序变量表
变量表主要组成部分为:Input(输入变量),Output(输出变量),Static(静态临时变量)。具体的变量表如图1所示。
图1 变量表
四、阀门控制程序设计
阀门控制程序全部使用SCL语言进行编写,首先是开阀程序,开阀的前提条件是没有开到位状态,没有开阀延时报警,然后在触摸屏按下开阀按钮后,开始开阀输出,同时计时器开始计时,当阀门在设定的时间内没有打开,会输出阀门报警,同时停止开阀输出。程序如图2所示。
图2 开阀程序
关阀程序与开阀程序一样,关阀的前提条件是没有关到位状态,没有关阀延时报警,然后在触摸屏按下关阀按钮后,开始关阀输出,同时计时器开始计时,当阀门在设定的时间内没有关闭,会输出阀门报警,同时停止关阀输出。程序如图3所示。
图3 关阀程序
阀门状态程序主要是为了使上位机更加直观的看到阀门的各种状态,此程序做了两种状态显示,一种是字符串直接使用中文显示阀门状态;另外一种是使用直接显示阀门状态,不同的数字表示不同的状态,具体的程序如图4所示。
图4 阀门状态程序
五、阀门控制程序调用
阀门控制程直接在主程序里调用测试,本次调用两个功能快,使用数组进行测试,调用的功能块如图5、图6所示。
图5 1#阀门功能块
图6 2#阀门功能块
明天准备把仿真测试做出来,与触摸屏仿真测试。
不足之处还望海涵,请各界大佬多多批评指教!
仅供参考!
猜你喜欢
- 2025-06-29 PLC中的梯形图(LAD)与结构化编程语言(SCL)的对比?
- 2025-06-29 PLC编程语言有哪几种?每种编程语言你都了解吗?
- 2025-06-29 [信捷PLC] 信捷PLC之C函数编程(一)
- 2025-06-29 PLC编程中常用的编程语言有哪些
- 2025-06-29 你要的西门子博途SCL指令,终于找齐了
- 2025-06-29 如何同时学会两门编程语言?
- 2025-06-29 软网推荐:请个多功能纯文本管理助手
- 2025-06-29 25种著名编程语言编写你的第一个程序Hello World
- 2025-06-29 PLC中ST语言的几种程序流程控制语句,温故而知新吧
- 2025-06-29 结构化程序设计方法
- 最近发表
-
- Qt编程进阶(63):Qt Quick高级控件的使用
- Qt编程进阶(47):QML鼠标事件处理(qt编程难不难)
- 使用Xamarin和Visual Studio开发Android可穿戴设备应用
- Qt使用教程:创建Qt Quick应用程序(三)
- QML性能优化 | 常见界面元素优化(qml布局自适应大小)
- Qt使用教程:创建移动应用程序(二)
- Qt Quick 多媒体开发播放音乐和视频
- Qt使用教程:创建Qt Quick UI表单(三)
- 如何将 Qt 3D 渲染与 Qt Quick 2D 元素结合创建太阳系行星元素?
- QML控件:TextInput, TextField, TextEdit, TextArea用法及自定义
- 标签列表
-
- axure 注册码 (25)
- exploit db (21)
- mutex_lock (30)
- oracleclient (27)
- nfs (25)
- springbatch (28)
- oracle数据库备份 (25)
- dir (26)
- connectionstring属性尚未初始化 (23)
- output (32)
- panel滚动条 (28)
- centos 5 4 (23)
- sql学习 (33)
- c 数组 (33)
- pascal语言教程 (23)
- ppt 教程 (35)
- java7 (24)
- 自适应网站制作 (32)
- server服务自动停止 (25)
- 超链接去掉下划线 (34)
- 什么是堆栈 (22)
- map entry (25)
- ubuntu装qq (25)
- outputstreamwriter (26)
- fill_parent (22)