- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
「编程实例」西门子博途SCL编写水处理行业电机启动算法
在做水处理项目时,会用到多个电机,但运行时只启动其中几个
电机,另外几个备用。那么,按下启动按钮时,到底是优先启用哪几
个电机呢,为了让电机使用率一致,通过运行时间来控制电机的启动,
比如10个电机中启用5个电机,那就选择5个运行时间最短的电机,
这样就可以避免一些电机使用时间很长,而另外一些电机使用时间很
短。每次按下启动按钮时,启动之前运行时间最短的几个电机。
建一个FB块,添加输入变量,输出变量,输入输出变量,静态变
量,临时变量。
输入变量
电机运行时间数组:10个元素,如果电机总数量是20就把数组
数量设为20
启动:电机的启动输入
停止:电机的停止输入
输出变量
电机输出数组:控制十个电机的运行
运行中:设备运行中指示
数量设置出错:电机数量设置超过限制时输出
输入输出参数
电机数量:电机总数量
启用数量:要启用的电机数量
比如电机总数为10个,需要启动5个,就给电机数量设为10,
启用数量设为5(电机数量,启用数量为什么不放在Input中,一定要
放在Inout中,大家可以自己动手编写测试就会发现放在Inout中可
以避免一个缺陷)
静态变量
S运行时间:用来存储输入的电机的运行时间
S时间:存储要进行排序的电机时间值
S电机编号:存储电机的编号,从1到10
S电机编号初始值:电机编号的初始值,用于把S电机编号初始化
S电机输出:用于初始化电机输出
R_TRIG_Instance:上升沿指令的多重实例,用于启动的上升沿
输出
S电机数量:保存输入电机数量,运行中电机数量输出
S启动数量:保存输入电机启动数量,运行中电机启动数量输出
IEC_Timer_0_Instance:通电延时指令多重实例,用于延时输出
电机数量和电机启动数量
临时变量
比较次数:电机运行时间两两比较的次数
比例轮数:电机运行时间两两比较的循环次数
判断次数:电机编号数组的值与0到10的比较次数
判断轮数:电机编号数组的值与0到10的比较的循环次数
判断电机数量与启动数量设置是否超限或大小不符,是的话就报
错并且跳过中间程序的执行。
启动,停止,运行中的自保持程序,运行中后延时输出刷新电机
数量,启动电机数量,运行中的上升沿指令输出。
启动后,初始化S运行时间,S电机编号,电机输出,电机数量,
启动数量输入。
对电机运行时间进行从小到大的排序
对电机编号进行排序:
据电机的编号,对电机输出进行控制,电机输出的数量为启动数
量
按下停止按钮后,断开所有电机的输出
FB块的调用如下:
启动,停止控制电机的运行,电机数量设置电机总数,启动数量
设置需要同时运行的电机数量,
电机输出控制电机的运行,运行中,数量出错显示运行状态,故
障状态。
DB44里面的结构,电机运行时间,电机输出都是有10个布尔变
量的数组
电机运行时间累计,用数组保存电机手动输出,自动输出,保持
性通电延时的背景数据块,电机运行时间。通过跳转对不同的电机进
行时间累计,以下程序用SCL编写则使用FOR,WHILE等循环语句,
梯形图中没有循环语句,就可以使用跳转指令代替。
测试如下:电机总数设置为8台,启动数量设置为4台。启动后,
在前8台电机中选择运行时间最短的4台电机启动。
文档评论(0)