设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
一文教会你SCL的状态机程序框架编写
返回列表
发新帖
[西门子]
一文教会你SCL的状态机程序框架编写
[复制链接]
139
|
0
|
2024-9-9 14:49:19
|
显示全部楼层
|
阅读模式
导读:在自动化设备中,设备之间的动作关系往往是一步步的,也就是做完了这个动作后做下一个动作,也就是不同的状态切换。我们在使用梯形图编程的时候,采用的是比较指令加传送指令编写的,那么对于SCL语言也可以实现这种状态之间的切换,最常用的指令就是Case语句。
如图所示,以下是CASE语句语法格式:
通过一个变量与“常数1” “常数2”…“常数n”进行比较,当比较的值相等时执行其语句。举例:假如变量“A”等于“1”是执行“语句1”。
注意:而当执行完语句1后“A”的值变为“2”了,不会在本次的扫描中执行“语句2”,而是在下个扫描周期执行“语句2”
对于CASE语句,它的好处就是在编程的时候让我们的条理非常清晰,一步一步的顺序执行,那对于初学者来说,不知道如何下手编写这个SCL语句。那么我们就可以遵循下图的模板来编写我们的程序
此图黑色字体为基本的SCL的CASE基本框架,红色的字体是我做的一些说明,在编程的时候可以对照这个图进行编写。
举例:根据以下控制要求编写程序
按下启动按钮后,启动1#水泵,然后延时5秒的时间启动2#水泵,再延时5秒启动3#水泵;
按下停止按钮后,停止3#水泵,然后延时5秒的时间停止2#水泵,再延时5秒停止1#水泵;
1.新建FB块,并且定义接口变量。
2.程序分析
首先是判断“步序”的值,如果等于0,则执行步序0,然后判断启动按钮是否按下,按下了则将“步序”的值修改为1。
在下一个扫描周期判断步序的值等于1,则按照上图给的框架编写:首先是将静态变量“S_水泵1标志”修改为1,然后触发一个定时器接通标志用于接通定时器,设定时间赋值;接下来就是判断条件,如果条件满足则将相关变量的值修改。
步序2至步序6是一样道理,复制粘贴即可,然后修改相关变量。
CASE语句结束后也是按照模板里的框架写,显示定时器指令,再是将静态变量赋值给输出点。
3.调用FB块
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
PLC工业机器人
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』