[西门子] 西门子SCL编程实例 | 多个灯的逻辑控制程序

[复制链接]
查看131 | 回复0 | 2024-4-25 16:57:16 | 显示全部楼层 |阅读模式

  SCL(Structured Control Language,结构化控制语言)是一种基于 PASCAL 的高级编程语言。这种语言基于标准 DIN EN 61131-3(国际标准为 IEC 1131-3)。根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。SCL 编程语言实现了该标准中定义的 ST 语言 (结构化文本) 的 PLCopen 初级水平。

今天讲解西门子博途软件中使用SCL语言编写一个电气工程师面试中经常会碰到的一个程序。控制逻辑:按钮I0.0, 灯1 Q0.0,灯2 Q0.1,灯3 Q0.2。按第一次灯1亮,第二次灯2亮,第三次灯3亮,第四次三个灯全灭,要求只用触点线圈指令完成此程序。

首先在项目树中添加一个FB函数块,选择语言为SCL。打开FB块后,在指令列表中可以看到SCL的指令。 SCL 除了包含 PLC 的典型元素(例如,输入、输出、定时器或存储器位)外,还包含高级编程语言。表达式,赋值运算,运算符,程序控制。这些只需使用条件执行语句和赋值运算即可完成此程序。

第一段程序:
1. 按钮第一次按下时,灯1亮且自保持。2.NOT #LP4是用于第四次按下按钮时灯1,2,3灭。3.第一次按钮松开时lp1置为1,用于记住按钮松开的状态。




第二段程序:
1.第二次按下按钮时,灯2亮。2.第二次按钮松开时lp2置为1。  



第三段程序:
1.第三次按下按钮时,灯3亮。2.第三次按钮松开时lp3置为1




    第四段程序:
1.第四次按下按钮时,灯1,2,3全灭。用lp4断开灯1后,其它灯依次断开2.第四次松开按钮,接通lp5,然后再断开lp4,lp5,便于再一次启动。  




在OB1中调用FB3函数块,自动生成一个FB3的背景数据块DB5,通过按钮I0.0测试,灯1,2,3的通断符合控制要求




此程序用计数指令,移位指令,置位复位指令或者比较传送指令都可以完成。在面试时会要求只使用线圈触点指令完成程序,这样增加了难度,更能考验逻辑思维能力。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则