加减乘除、比较、位移、赋值,还有不同数值类型之间怎么转换——这一课把 ST 的基本运算讲清。
ST 支持加减乘除四则运算,优先级和数学课一样:先乘除后加减。a 是 20、b 是 6,式子 a 加 b 乘 2 先算 6 乘 2 得 12,再加 20,结果是 32。
想先算加减,就加括号。`(a + b) * 2` 先把 20 加 6 得 26,再乘 2 得 52。括号的优先级最高,这和数学里的规矩一样。
注意 PLC 的除法是整数除法:17 除 5 商 3,小数部分直接丢掉,不会四舍五入。信捷也没有取余运算,真需要余数,得自己用减法倒推。
比较运算通常写在 IF 里当条件:v 是 8,`IF v > 5 THEN ok := 1; END_IF;` 条件成立,ok 被置 1。大于、小于、等于这些关系,在 ST 里就是一个符号。
一行可以写多条语句,用分号隔开。先给 x 赋 3,再用 x 的当前值算出 y 等于 12。语句顺序执行,后面的能用前面的结果。
收尾练个真公式:摄氏转华氏 `f := c * 9 / 5 + 32;`。c 是 20 度,先乘 9 得 180,除 5 得 36,加 32 得 68 华氏度。公式怎么写的就怎么算,这就是 ST 最大的爽点。