西門子plc有哪些編程指令?
PLC(Programmable Logic Controller)是一種數(shù)字計(jì)算機(jī),用于控制工業(yè)過(guò)程中的機(jī)器和設(shè)備。PLC編程是一種特殊的編程語(yǔ)言,用于編寫控制程序,以控制PLC的輸入和輸出。西門子PLC是PLC市場(chǎng)上的領(lǐng)導(dǎo)者之一,其編程指令非常豐富。
德國(guó)西門子(SIEMENS)公司生產(chǎn)的可編程序控制器在我國(guó)的應(yīng)用也相當(dāng)廣泛,在冶金、化工、印刷生產(chǎn)線等領(lǐng)域都有應(yīng)用。西門子(SIEMENS)公司的PLC產(chǎn)品包括LOGO、S7-200、S7-1200、S7-300、S7-400、S7-1500等。 西門子S7系列PLC體積小、速度快、標(biāo)準(zhǔn)化,具有網(wǎng)絡(luò)通信能力,功能更強(qiáng),可靠性高。S7系列PLC產(chǎn)品可分為微型PLC(如S7-200),小規(guī)模性能要求的PLC(如S7-300)和中、高性能要求的PLC(如S7-400)等。
在用戶程序執(zhí)行階段,PLC總是按由上而下的順序依次地掃描用戶程序(梯形圖)。在掃描每一條梯形圖時(shí),又總是先掃描梯形圖左邊的由各觸點(diǎn)構(gòu)成的控制線路,并按先左后右、先上后下的順序?qū)τ捎|點(diǎn)構(gòu)成的控制線路進(jìn)行邏輯運(yùn)算,然后根據(jù)邏輯運(yùn)算的結(jié)果,刷新該邏輯線圈在系統(tǒng)RAM存儲(chǔ)區(qū)中對(duì)應(yīng)位的狀態(tài);或者刷新該輸出線圈在I/O映象區(qū)中對(duì)應(yīng)位的狀態(tài);或者確定是否要執(zhí)行該梯形圖所規(guī)定的特殊功能指令。
即,在用戶程序執(zhí)行過(guò)程中,只有輸入點(diǎn)在I/O映象區(qū)內(nèi)的狀態(tài)和數(shù)據(jù)不會(huì)發(fā)生變化,而其他輸出點(diǎn)和軟設(shè)備在I/O映象區(qū)或系統(tǒng)RAM存儲(chǔ)區(qū)內(nèi)的狀態(tài)和數(shù)據(jù)都有可能發(fā)生變化,而且排在上面的梯形圖,其程序執(zhí)行結(jié)果會(huì)對(duì)排在下面的凡是用到這些線圈或數(shù)據(jù)的梯形圖起作用;相反,排在下面的梯形圖,其被刷新的邏輯線圈的狀態(tài)或數(shù)據(jù)只能到下一個(gè)掃描周期才能對(duì)排在其上面的程序起作用。
本文將介紹西門子PLC的一些常用編程指令。
1. LD(Load)
LD指令用于將一個(gè)值或一個(gè)地址加載到一個(gè)寄存器中。例如,LD I0.0將輸入I0.0的狀態(tài)加載到一個(gè)寄存器中。
2. LDI(Load Immediate)
LDI指令用于將一個(gè)立即數(shù)加載到一個(gè)寄存器中。例如,LDI #10將數(shù)字10加載到一個(gè)寄存器中。
3. AND(And)
AND指令用于將兩個(gè)值進(jìn)行邏輯與操作。例如,AND I0.0 I0.1將輸入I0.0和I0.1的狀態(tài)進(jìn)行邏輯與操作。
4. OR(Or)
OR指令用于將兩個(gè)值進(jìn)行邏輯或操作。例如,OR I0.0 I0.1將輸入I0.0和I0.1的狀態(tài)進(jìn)行邏輯或操作。
5. NOT(Not)
NOT指令用于將一個(gè)值進(jìn)行邏輯非操作。例如,NOT I0.0將輸入I0.0的狀態(tài)進(jìn)行邏輯非操作。
6. SET(Set)
SET指令用于將一個(gè)輸出置為1。例如,SET Q0.0將輸出Q0.0的狀態(tài)置為1。
7. RESET(Reset)
RESET指令用于將一個(gè)輸出置為0。例如,RESET Q0.0將輸出Q0.0的狀態(tài)置為0。
8. MOV(Move)
MOV指令用于將一個(gè)值從一個(gè)寄存器移動(dòng)到另一個(gè)寄存器。例如,MOV I0.0 M0.0將輸入I0.0的狀態(tài)移動(dòng)到M0.0寄存器中。
9. ADD(Add)
ADD指令用于將兩個(gè)值進(jìn)行加法操作。例如,ADD M0.0 M0.1將M0.0和M0.1寄存器中的值進(jìn)行加法操作。
10. SUB(Subtract)
SUB指令用于將兩個(gè)值進(jìn)行減法操作。例如,SUB M0.0 M0.1將M0.0和M0.1寄存器中的值進(jìn)行減法操作。
11. MUL(Multiply)
MUL指令用于將兩個(gè)值進(jìn)行乘法操作。例如,MUL M0.0 M0.1將M0.0和M0.1寄存器中的值進(jìn)行乘法操作。
12. DIV(Divide)
DIV指令用于將兩個(gè)值進(jìn)行除法操作。例如,DIV M0.0 M0.1將M0.0和M0.1寄存器中的值進(jìn)行除法操作。
13. JMP(Jump)
JMP指令用于跳轉(zhuǎn)到程序中的另一個(gè)位置。例如,JMP LBL1將跳轉(zhuǎn)到程序中標(biāo)記為L(zhǎng)BL1的位置。
14. CALL(Call)
CALL指令用于調(diào)用一個(gè)子程序。例如,CALL SUB1將調(diào)用程序中標(biāo)記為SUB1的子程序。
15. RET(Return)
RET指令用于從一個(gè)子程序中返回。例如,RET將從當(dāng)前子程序返回到調(diào)用它的位置。
總結(jié)
西門子PLC的編程指令非常豐富,本文介紹了其中的一些常用指令。PLC編程需要掌握的知識(shí)包括PLC的基本原理、PLC的硬件和軟件組成、PLC編程語(yǔ)言、PLC編程工具等。在學(xué)習(xí)PLC編程時(shí),需要注重實(shí)踐,通過(guò)實(shí)際操作來(lái)加深對(duì)PLC編程的理解和掌握。