有人提問SCL語言編程與西門子PLC的關系,我們都知道PLC調試設備,需要輸入設備語言(讓設備懂你想讓它做啥),而SCL就是這樣演變出的存在,下面我們就一起看看,在這過程中遇上的一些常見的疑問吧

問:如果第二次按HomePB,i需要清零嗎?
答:不需要,FOR循環里面,i每次都會從0開始。
問:復位的數組是定義了的嗎?
答:對,數組在靜態變量里定義的。
問:把99改成3會是什么結果?
答:會復位數組的前四個,后面的不會復位。
問:張老師,執行這個FOR指令需要9個PLC掃描周期還是1個?如果循環1000次,會PLC運行超時報警嗎?
答:FOR指令是1個掃描周期,PLC的處理速度是非常快的,1000次的循環時間還遠不及超時報警。
問:常閉觸點怎么表達?
答:常閉觸點加NOT,表示取反。
問:數組跟循環有什么關系?
答:可以用循環處理數組里面的數據。

問:for循環在一個掃描周期?
答:對的,FOR循環是在一個掃描周期內。
問:那個I是什么作用?
答:i這里是用作FOR循環語句里面的變量,它是根據FOR指令的語法做變化的,當然你也可以使用其他變量,這里我們習慣用i。
問:數組里面就一個數#i?怎么還叫組?
答:數組是可以根據下標進行尋址的,這里的i是變化的。
問:數組跟復位有什么關系?
答:電磁閥這類布爾量可以組成一個數組,可以對布爾量進行復位當然也可以對數組進行復位
問:下降沿的怎么標示?
答:F_TRIG指令檢測下降沿。
問:每一次結束后對 i遞增嗎?
答:FOR循環指令里面是這么執行的,增量可以通過BY指定。
問:for循環周期是plc掃描周期?
答:不是,PLC掃描周期包含FOR循環周期。
問:定時器的數據在這SCL中是哪個?
答:如果你指的是當前值,那么就存放在定時器輸出ET里面。
問:那in是不是也可以寫在括號外?
答:輸入需要寫在括號內。
問:這個定時器的變量個數有限制?
答:理論上是有限制,但一般情況下是用不完的,請放心使用。
問:梯形圖有en scl都寫到in嗎?
答:SCL跟LAD不同,沒有EN,你想要的EN邏輯可以通過加IF指令實現。
問:R_TRIG_是上升沿?那下降沿?
答:下降沿是F_TRIG指令。
問:r_trig 在一個程序里面用建多個嗎?
答:可以多個。
問:A AND NOT B B:=A 這能否代替 R_TRIG?
答:你的程序可能沒寫全,是可以自己用邏輯做出來上升沿的。
問:IF和CASE有先后順序嗎?
答:沒有,你哪個寫在前面先執行哪個。
問:老師,stl和scl有什么區別啊?
答:STL是語句表,相差非常大。
問:如果start與stop都為1怎么辦?
答:按邏輯執行最后面的語句。
問:老師case能放到下面嗎?
答:可以放到下面的,程序邏輯不受影響。
問:CASE是MOVE指令還是相當于一個變量存儲區?
答:CASE是SCL里面的專有指令,它起到一個枚舉作用。
問:老師,為什么在static那里建 變量?謝謝
答:static里面是局部變量,當然你也可以用類似于M這樣的全局變量。
問:老師,工藝流程圖中掃描完case1為啥直接掃描CASE4?
答:那個工藝流程圖我只是做一個示意,是切換并不是掃描,可以通過編程隨意的切換到CASE里面的一個狀態。
問:同時接通為什么不是狀態1?
答:STOP的狀態2在后面,執行后面的程序。
問:老師,請問一下400的軟件用scl語言與博圖的scl有什么區別嗎?
答:語法上沒有區別。
問:DB 塊里面變量為啥和臨時變量一致了?
答:那個是背景DB塊,自動根據FB生成的。
問:ALT指令是什么?
答:ALT是三菱里面的交替指令。
問:梯形圖好不直接轉scl?
答:不能轉。
問:梯形圖指令里的 “取反”指令怎么寫 ALT指令?
答:NOT表示取反。
問:張老師是不是scl在條件里面雙線圈是不是就不存在了?
答:這個也要看邏輯,它也會從上而下執行。
問:IF#A這個語句中,#A=1?
答:對,如果A為邏輯1則執行后面的語句。
問:#A,#B是什么意思?
答:是布爾型的局部變量。
問:老師問不懂西門子plc,學過C語言,這個可以學會嗎?
答:有PLC基礎就可以學,你稍微了解下西門子編程基礎就可以。
問:SCL語言可以和梯形圖在一個項目里能互用嗎?
答:可以的,可以穿插使用。
問:這跟模塊化編程有什么區別?
答:結構化的主要思想是建立通用的模塊,方便后期使用。
問:SCL可以做成功能快 梯形圖調用可以嗎?
答:可以的,可以混合使用。
問:梯形圖和scl語言可以互相轉換嗎?
答:不能轉換。
問:ST語言一個IF語句大概占用幾步?
答:在SCL/ST語言里面我們一般用占用內存來衡量。