橙色,是施耐德電氣寫進 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 隨固件同步更新