设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
博途SCL编程实例一万台电机的顺启逆停
返回列表
发新帖
[西门子]
博途SCL编程实例一万台电机的顺启逆停
[复制链接]
250
|
0
|
2024-4-17 20:37:46
|
显示全部楼层
|
阅读模式
1 | 题目
有10000台电机M0-M9999,按下启动按钮后,电机M0-M9999按顺序每隔5秒启动。按下停止按钮后,电机M9999-M0按顺序每隔5秒停止。当电机发生故障时,当前电机及其后面的电机立即停止,而前面的电机则按顺序每隔5秒停止。例如:当M99出现故障,M99-M9999立即停止,M98-M0按顺序每隔5秒停止。
在启动过程中允许按下停止按钮,已经启动运行的电机将按照顺序每隔5秒停止。
在停止过程中允许按下启动按钮,还未启动运行的电机将按照顺序每隔5秒启动。
编写程序实现以上功能,支持任意电机的数量,注意只允许使用一个定时器。
2 | 设计分析
采用循环语句。
启动时判断当前电机的前一个电机是否已经启动运行,如果已经启动运行则启动定时器,定时时间到后启动当前电机。
停止时判断当前电机的后一个电机是否已经停止运行,如果已经停止运行则启动定时器,定时时间到后停止当前电机。
故障时的处理方法和停止过程类似。
3 | 创建功能或功能块
创建功能块FB,命名为“MtrStSpInSeq”。
4 | 定义接口变量
具体接口变量定义见下图:
定义布尔型变量start:启动;
定义布尔型变量stop:停止;
定义布尔型一维可变限值数组变量mtrStSps:电机启停输出;
定义布尔型一维可变限值数组变量faults:电机故障;
定义多重实例instTimer:多台电机启停的间隔时间。
5 | 程序代码
编写程序代码。如下图:
第68行-87行代码控制电机按顺序每隔5秒启动,第88行-108行代码控制电机按顺序每隔5秒停止。可以通过对以上代码进行修改从而实现每台电机启动和停止采用不同的间隔时间。注意以上程序代码中只使用了一个定时器,如果电机数量众多,可以节约CPU资源。
6 | 代码测试
在循环OB中调用FB-“MtrStSpInSeq”。 如下图:
定义全局数据块,用来存储10000台电机的启停输出和故障信号并作为实参传递给以上子程序的形参。如下图:
在线监控。如下图:
以上截图仅为启动过程的一部分,停止过程和故障测试并未展示。
7 | 总结
学习FOR循环语句;
学习FOR循环语句嵌套;
学习IF..ELSE语句;
学习上升沿的使用方法;
学习可变限值一维数组的使用方法;
学习RETURN语句在程序代码中的作用;
学习在OB中调用FB和实参的传递方式。
- END -
今年1月,“
TIA标准化训练营
”第一期的培训正式开始了!有超过
400
位
来自全国的自动化工程师参与了第一期的培训。
在培训结束后,有多位优秀工程师提供的开源库文件正式收录到了
TIA标准化社区
中,作为开发者共创的资源和大家共享!
以下可对部分收录库的功能进行快速浏览:
LECO_FlowCompensation
功能
:针对差压流量计开方后对应的工况流量,进行
温度压力补偿
。
LECO_IncrementalPid
功能
:可以实时仿真
增量式 PID 控制
,解决 S7-1200 无硬件,无法仿真系统 PID 的问题。(修改功能块同时适用于S7-1500)
LECO_MultiStaSeq
功能
:在一套设备中,如果对应多工位作业场合(本块最多支持255个工位),可实现
按工位预约的先后进行作业
;避免设备长期在某一个工位作业,而其他工位一直等待的情况。
LECO_MachineRunningTimer
功能
:通过设备的运行信号,记录设备的
总运行时间
、
总启动次数
、
距离上次保养后的运行时间
和
启动次数
。
LECO_ParameterAdjuster
功能
:对于需要在
HMI频繁修改数值
的参数,可在HMI 上做加按钮或减按钮,当单击按钮时,可以实现参数按照点动值点动增加或减少。
LECO_RampAndS_Curve
功能
:用于实现设定值从0开始到最大值的
斜坡函数发生器
和S曲线功能。适用于需要实现加速度斜坡输出的场景,如起重设备、比例阀等,可实现在输出时加速度的平滑过渡,防止冲击。
更多信息,可点击下图即直接跳转至小程序
开发者共创
版面:
如果您还不知道如何开始标准化之路,或者也想和更多优秀工程师一起学习讨论,欢迎参加我们精心准备的“
标准化训练营
”!已经有近
800名
工程师参与了训练营,完整参与培训并完成任务后还有证书和礼品
。即将开始
第三期报名
,快快这几个月爆火的ChatGPT点燃了全民转发的热情,大家也对各种生成式AI工具展开了讨论和思考。对于自动化领域,相信大家也产生了疑问:
ChatGPT类的工具能应用于博途之中,提高我们编程组态的工作效率吗?
答案是一定的!(但不会发生在V19)
本篇内容先和大家分享一个短期内(可能)会帮助到大家的改变。
如果使用过高级语言编程的环境,那么对以下动图中展现的内容肯定不陌生了,输入不同的函数名后,可以选择提示中的内容帮你
自动补齐代码
。这种方式不但可以提高效率,并且也降低了出错的可能性,能够避免很多莫名其妙的语法错误。
Visual Studio还会非常贴心地在推荐使用函数上打上星标、小扳手、闪电等标识来确定这是函数、参数,或是与用户交互的Action等。
好消息是,TIA 博途也在考虑这个功能!从V18开始,博途会更加智能,并且更加强调
高效工程
(Efficiency Engineering)。从图形编辑器 (LAD/FBD) 迈出这个方向的第一步,并为
内部
和
全局变量
的使用提出明智的建议:将它们按概率排序显示在已经存在的通用窗口的上部区域, 同样用一些提示来区分不同的对象。
(该
图仅为测试图,还未应用
)如上
测试图
中星标和高亮模块所示, 会将此处可能使用的相关 “_DB12XXX” 在对话框自动提示出来!
该功能还未开发完成,虽然和生成式AI没有太大关系,但却能实打实提高自动化工程效率!
话说回来,程序只有建立在
标准化
的基础上,才能采集到高质量、可追溯的数据,结合新技术,继而发挥出数据最大的价值!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
博图TIA
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』