【博图scl语言】313-2dp
阅读原文时间:2023年07月08日阅读:2

①如果

if(***) then

*** := ***;

end_if;

②循环

for n1:=1 to 50 by 1 do

end_for;

WHILE #n1 < 54 DO

END_WHILE;

CASE #n1 of
1: //等于1的时候
;
2,4..5: // 等于2 和4到5的时候
;
ELSE // 等于其他的值的时候
;
END_CASE;

tiao:    //自定义名字 后面有个冒号****

goto tiao; //直接跳转到自定义名字处

③函数

自带的函数 有的括号里面有in1:=  in2:= 等等,有的不需要,直接从右边指令拖拽最好 如 "上位机的值".顶升时间 := T_DIFF(IN1 := #sj5, IN2 := #sj4);END_IF;

自己写的fc函数,调用时候,输出的的需要加=> 如 "杨少专属函数"(q1:=0,q2:=53,q4=>"上位机的值".选中多少台设备);

④特殊指令

获取当前plc的时间值 如:  #t1 := RD_SYS_T(#sj2);

统计这个字或者双字里面有多少个1  如:"上位机的值".回拉到位的台数 := BITSUM(WORD_TO_BLOCK_DB(5).DD(424));

与分控的读写  读: %IX(200 + #n2, 7)  写: %QX(200 + #n2, 7) ,把X换成W是写字 换成D是写双字****

④定时器

1:自带的脉冲 需要在时钟设置里面打开 默认是10.0是20HZ 0.1S

2:直接在右边拖到一个ton到scl语言里面。弄一个定时器传不同的PT值(设定接通值 类型都是time 默认是ms)就可以了,然后记得到位后,赋值0给in和q

#IEC_Timer_0_Instance(IN := "定时器启动", //通用的定时器间隔时间,可传输不同的间隔
PT := "上位机的值".每个动作等待的间隙,
Q => "定时器结束",
ET => "上位机的值".计时了多久);

3:走自动,用case不停的循环判断自动状态就可以了(以前程序是用的编码与解码然后赋值 原理一样)

以前是 把一个整数deco解码输出成多少位是通的,感觉可以直接用这个数值判断=多少 一样可以

今天直接在原程序上修改

①单腿位移传感器斜多或者挂钩掉了(加入上升和下降的一个位移区间范围) 报警提示

②四个腿的位移差值过大 报警提示

③把打成手动不能选中设备 改成 不是自动模式 选择的时候选不中

④行程统计待优化,要弄一个长整数,会超过32米(单独在变量表里面建),然后基准点弄个哪台设备为变量

⑤待优化成 开启调平位置 预顶开 往上顶开 下降开 到0后也开 全开 上位机弄一个数字判断用户是想怎么设置,每台设备单独设置