橙色,是施耐德电气写进 logo 里的颜色,也是工程师在dcs机柜里最常见到的“一抹亮色”。
可很多人没注意:当这抹橙色落在 modiconplc的标签上时,背后藏着一整套从 1968 年延续至今的指令“暗语”——从最早的 19 条梯形图,到 2025 年支持多核实时的 300+ 指令,它们像乐高积木一样,被一代代工程师拼成炼油塔、空客总装线、冬奥造雪机的控制灵魂。
今天,我们就把这套“暗语”拆成 30 张卡片,带你 5 分钟速览施耐德 plc 指令的“橙色密码”。
(modicon m580 / m340 / quantum 通用,固件 ≥ sv4.40)
1 问:ld 和 ldnc 有啥区别?
答:ld 取常开,ldnc 取常闭;后者在母线开始处对位信号取反再装入累加器。
2 问:and 与 andn 怎么用?
答:and 串联常开,andn 串联常闭;一条指令只操作 1 位,影响 ccvo 状态位。
3 问:or 和 orn 呢?
答:or 并联常开,orn 并联常闭;编译后生成同一字节内的位或运算。
4 问:st 指令能直接写物理输出吗?
答:可以,但必须先映射到 %q* 内存区;写完后立即刷新到输出模块。
5 问:stn 会不会把线圈“置反”?
答:对,stn 把累加器结果取反再写入,相当于“常闭线圈”。
6 问:梯形图里想用“异或”怎么办?
答:调用 xor 指令;支持 1/8/16/32 位宽,结果放回累加器。
7 问:置位-复位哪家强?
答:s 置位、r 复位,均可带“条件”;同一地址多处 s/r,后扫描者赢。
8 问:drum 指令是干啥的?
答:步序控制器,一次最多 32 步,每步可定义 16 个输出掩码,自动顺启/顺停。
9 问:for 循环怎么写?
答:for i := 1 to 10 by 2 do … end_for;
i 可为 int、dint;步长可省,默认 1 。
10 问:while 和 repeat 区别?
答:while 先判后跑,repeat 先跑后判;均支持布尔表达式退出。
11 问:ton 与 tof 最小时基?
答:1 ms;但扫描周期 <1 ms 时,仍以 1 ms 向上取整。
12 问:tp 脉冲定时器能自复位吗?
答:不能,必须外部给 in=0 才能重新触发;输出脉宽=设定值。
13 问:ctu 计数上限多少?
答:uint 65535,达到后 cv 保持,qu 置 1,需 r 端复位。
14 问:ctd 向下计数能到负数吗?
答:不会,减到 0 停止,qd 置 1;load 端可重载初值。
15 问:addm 是干啥的?
答:把 ip:端口 字符串→内部 addm 结构,供 read_var / write_var 调用。
16 问:read_var 一次最多读多少字?
答:125 个寄存器(2000 位);超量需分包循环。
17 问:write_var 支持 03 吗?
答:只支持 06/16;若设备仅 03,需改用 data_exch 自建 pdu。
18 问:data_exch 优点?
答:可发任意功能码,支持 raw pdu;但需手动计算 crc/head。
19 问:int_to_real 会四舍五入吗?
答:不会,直接补零扩展;若要舍入,先 int_to_dint 再 dint_to_real。
20 问:shl 与 rol 差别?
答:shl 空位补 0,rol 循环移位,最低位=最高位移出值。
21 问:fifo 指令容量?
答:最大 4096 字,深度可设;溢出状态位 fifo_o=1。
22 问:jmp 能跨 pou 吗?
答:不能,仅在本任务段内跳转;跨 pou 用 cal/ret。
23 问:cal 调用功能块可带几参数?
答:理论 255,实际受堆栈 32 kb 限制;建议 <32 个。
24 问:ret 必须写吗?
答:fb 内可缺省,最后一句默认 ret;fc 需显式 ret 并返回值。
25 问:sbo 与 sho 区别?
答:sbo 置位输出,sho 短脉冲输出;后者自动断,宽=1 扫描周期。
26 问:blink 占系统资源吗?
答:每实例 8 字节,最小周期 1 ms;高频慎用,建议 <1 khz。
27 问:pidff 与 pid 差别?
答:pidff 带前馈通道,kff 可设;适用于大滞后+可测扰动系统。
28 问:il 语言还能用吗?
答:iec 61131-3 保留,但 schneider 官方推荐转 st/fbd;新特性不再追加。
29 问:安全 cpu 指令差别?
答:普通指令集全兼容,但安全 i/o 仅能用 sf_ 前缀功能块,需 xls 授权。
30 问:哪里下载最新指令表?
答:官网搜索文档号 33003137.13(m580)/ 35010829.10(quantum),pdf 随固件同步更新