我接觸到很多同行,他們都說s7-300/400的語句表(即指令表)語言難學,最近在西門子的s7-300/400論壇上,看到有網友感嘆“語句表好難學?。 ?。梯形圖為什么好學?其原因很簡單,梯形圖來源于繼電器電路圖,以觸點和線圈為主,因此熟悉繼電器控制的電氣人員感覺很容易學。
1.語句表非學不可
1)語句表的指令比梯形圖多,只有語句表才有下列指令:定時器/計數器的fr指令、與地址寄存器、累加器、狀態(tài)字、數據塊有關的大量指令,循環(huán)指令(loop)和部分跳轉指令,塊結束指令等。
2)語句表的功能比梯形圖更強,例如循環(huán)程序和間接尋址等只能用語句表來編程。
3)實際的控制程序(特別是老外編的程序)幾乎都有語句表編寫的邏輯塊。但是語句表程序一般不能用step7完全轉換為梯形圖。不能轉換的程序段仍然用語句表表示。
因此在實際工作中語句表是很難回避的,要想學好s7-300/400,必須學好語句表。
2.語句表為什么難學?
1)語句表語言有點類似于intel的51系列單片機的匯編語言,比如它們都有累加器、狀態(tài)字和地址寄存器等,梯形圖并不使用累加器和地址寄存器。
2)語句表程序幾乎所有的操作都是在累加器中完成的,因此需要用大量的裝入(l)指令來將數據裝入累加器,用傳送(t)指令來將運算結果從累加器傳送到目的地址。比較一下s7-300和s7-200的循環(huán)程序,就會發(fā)現(xiàn)前者的要復雜得多。
梯形圖只需要一條move指令,不需要累加器就可以任意傳送數據。
2)s7-300/400的間接尋址比其他plc的間接尋址復雜得多,只有語句表有間接尋址功能,這也是語句表難學的原因之一。
3.學好語句表的幾點建議
1)首先要打牢基礎,掌握必備的計算機基礎知識,例如二進制數、十六進制數、bcd碼、補碼、各種數據類型、參數類型、累加器、狀態(tài)字、地址寄存器、各種尋址方式等的基本概念和應用。
如果在學校學過匯編語言,對學習語句表語言會有好處。有人建議為了學語句表去學匯編語言,我認為倒沒有這個必要。
2)多用多練,在實踐中學。plc和計算機的語言就像外語一樣,一定要多用多練,主要靠讀程序、編程序和調試程序來學習。初學的時候可以找一本好的教材,閱讀教材中有大量注釋的語句表程序。在此基礎上,可以閱讀生產中的實用程序。最好能自己編一些程序,然后用仿真軟件來調試程序。
3)充分利用step7的在線幫助功能,用鼠標選中用戶程序中的某條指令,按〈f1〉鍵就可以打開該指令的在線幫助,看到指令的詳細使用方法,例如指令的功能描述,指令的輸入/輸出參數的數據類型、允許使用的存儲區(qū)和參數的意義,指令的執(zhí)行對狀態(tài)字的影響,以及指令應用的實例等。