静态变量S运行时间:用来存储输入的电机的运行时间S时间:存储要进行排序的电机时间值S电机编号:存储电机的编号,从1到10S电机编号初始值:电机编号的初始值,用于把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台电机中选择运行时间Zui短的4台电机启动。