基礎實用入門的西門子S7-200PLC學習筆記
一、輸入信號:I0.0-I0.7; I1.0-I1.7
二、輸出信號:Q0.0-Q0.7; Q1.0-Q1.5
三、繼電器:M0.0-M31.7;共256位
四、時間繼電器(從(cong) T37開始編):通電延時(TON)
有記憶的通電延時(TONR)
斷電延時(TOF)
圖1
以圖1為(wei) 例,IN為(wei) 輸入信號,TON表示這個(ge) 時間繼電器是通電延時,T37表示這個(ge) 繼電器命名為(wei) T37,100ms是單位基數, PT為(wei) 延遲時間
時間繼電器延遲時間算法:PT時間單位基數;圖1中延遲時間為(wei) 100100ms=10000ms=10s
五、計數器(C0-C255):增計數器(CTU)
減計數器(CTD)
增減計數器(CTUD)
圖2
以圖2為(wei) 例,C1表示這個(ge) 計時器命名為(wei) C1,CTU表示這個(ge) 計數器為(wei) 增計數器,CU為(wei) 觸發信號,R為(wei) 複位信號,PV為(wei) 計數次數
提示:1. 計數器CU端與(yu) R端不能存在or狀態
2.計數器要從(cong) 最左端主線直接輸入信號
3.一個(ge) 網絡裏隻能有一個(ge) 計數器
六、上升沿(P):上升沿觸發,當輸入信號狀態由0—1則發生動作,反之由1—0則不動作
下降沿(N):下降沿觸發,當輸入信號狀態由1—0則發生動作,反之由0—1則不動作
七、特殊功能寄存器(SM):
SM0.0:使運行時一直為(wei) 1,是常ON繼電器,一般用在程序開始最左側(ce) 第一位置,辦證每次都掃描;
SM0.1:是CPU第一次上電運行時動作一次,也就是一個(ge) 上升沿,一般作為(wei) 初始故障複位使用;
SM0.2:當機器執行數學運算結果為(wei) 負時,該位被置1;
SM0.3:開機後進入RUN方式,該位被置1一個(ge) 掃描周期;
SM0.4:是以1min為(wei) 周期的脈衝(chong) 波形,可以作為(wei) 計數器觸發使用;
SM0.5:是以1秒為(wei) 周期的脈衝(chong) 波形,可以作為(wei) 計數器觸發使用;
SM0.6:為(wei) 掃描時鍾脈衝(chong) ,首次掃描為(wei) 1,下次為(wei) 0,在下次為(wei) 1,以此類推;
SM1.0:當執行某些指令,其結果為(wei) 0時,將改位置為(wei) 1;
SM1.1:當執行某些指令,其結果溢出或非法數值時,將改位置為(wei) 1;
SM1.2:當執行數學運算指令,其結果為(wei) 負數時,將改位置為(wei) 1;
SM1.3:試圖除以0時,將改位置為(wei) 1。
八、順序控製繼電器(S):
順序控製繼電器區為(wei) 順序控製繼電器的數據而建立一個(ge) 存儲(chu) 區,用S表示;可以按位、字節、字、雙字四種方式來存取。
(1)位:S0.0-S31.7,共256點
(2)字節:SB0-SB31,共32字節
(3)字:SW0-SW30,共16字
(4)雙字:SD0-SD28,共8個(ge) 雙字
注:程序中S上方是置位的起始位置,下方的數字是從(cong) 起始位置開始的總點數,如圖三表示從(cong) Q0.0開始置位三個(ge) 點(Q0.0,Q0.1,Q0.2);R的上方下方表達意思與(yu) S一樣。
圖3
九、複位(R):用法與(yu) 順序控製繼電器一樣,順序控製繼電器是置位,R為(wei) 複位。
十、跳轉指令與(yu) 標簽指令
跳轉指令(JMP):在預置觸發信號接通時,使程序跳轉到標簽處執行;
標簽(LBL):標記跳轉的目的地位置;
JMP與(yu) LBL指令上方的數字為(wei) 對應的位置,即當JMP指令上方數字為(wei) n時,接通時會(hui) 自動跳轉到相對應的上方數字為(wei) n的LBL命令的位置來執行程序,常用來切換兩(liang) 個(ge) 不同工作狀態下的不同的程序。
十一、高速計數器(HC)
用來累積比CPU的掃描速率更快的事件,計數過程與(yu) 掃描周期無關(guan) 。
十二、累加器(AC)
用來向子程序傳(chuan) 遞參數和從(cong) 子程序返回參數,或用來臨(lin) 時保存中間的運算結果。
十三、程序組織單元(POU)
將主程序、子程序和中斷程序統稱為(wei) 程序組織單元(POU),各POU都有自己的64B的局部存儲(chu) 器;使用梯形圖和功能模塊圖時,將保留局部存儲(chu) 器的最後4B。
十四、局部存儲(chu) 器(L)、變量存儲(chu) 器(V)
僅(jin) 在它被創建的POU中有效,各POU不能訪問別的POU的局部存儲(chu) 器;變量存儲(chu) 器(V)是全局存儲(chu) 器,可以被所有的POU訪問。
十五、模擬量輸入(AI)
AI模塊將連續變化的模擬量按比例轉換為(wei) 一個(ge) 字長(16位)的數字量,用區域標識符AI、表示數據長度的W(字)和起始字節的地址來表示模擬量輸入的地址,例如AW16,模擬量輸入值為(wei) 隻讀數據。
十六、模擬量輸出(AQ)
AO模塊將長度為(wei) 一個(ge) 字的數字轉換為(wei) 現實世界的模擬量,用區域標識符AQ、表示數據長度W(字)和起始字節的地址來表示存儲(chu) 模擬量輸出的地址,例如AQW32,模擬量輸出值是隻寫(xie) 數據,用戶不能讀取模擬量輸出值。
十七、使能輸入與(yu) 使能輸出
梯形圖中,用方框鏢師某些指令,例如定時器和數學運算指令,通常方框指令的輸入端在左邊,輸出端在右邊;能流從(cong) 左至右,不能有短路、開路和反方向的能流,前一個(ge) 方框的輸出可以作為(wei) 後一個(ge) 方框的輸入。
十八、移位指令與(yu) 循環移位指令
梯形圖 | 語句表 | 描述 |
---|---|---|
SHR_B | SRB OUT,N | 右移字節 |
SHL_B | SLB OUT,N | 左移字節 |
SHR_W | SRW OUT,N | 右移字 |
SHL_W | SLW OUT,N | 左移字 |
SHR_DW | SRD OUT,N | 右移雙字 |
SHL_DW | SLD OUT,N | 左移雙字 |
表1、移位指令
梯形圖 | 語句表 | 描述 |
---|---|---|
ROR_B | RRB OUT,N | 循環右移字節 |
ROL_B | RLB OUT,N | 循環左移字節 |
ROR_W | RRW OUT,N | 循環右移字 |
ROL_W | RLW OUT,N | 循環左移字 |
ROR_DW | RRD OUT,N | 循環右移雙字 |
ROL_DW | RLD OUT,N | 循環左移雙字 |
SHRB | SHRB DATA,S BIT,N | 移位寄存器 |
表2、循環移位指令
十九、數據轉換指令
實現字節(B)與(yu) 整數(I)、整數與(yu) 雙整數(DI)、BCD碼與(yu) 整數、雙整數(DI)與(yu) 實數(R)之間的轉換指令,以及七段譯碼指令。
梯形圖 | 語句表 | 描述 |
---|---|---|
B_I | BTI IN,OUT | 字節轉換為整數 |
I_B | ITB IN,OUT | 整數轉換為字節 |
I_DI | ITD IN,OUT | 整數轉換為雙整數 |
DI_I | DTI IN,OUT | 雙整數轉換為整數 |
DI_R | DTR IN,OUT | 雙整數轉換為實數 |
I_BCD | IBCD OUT | 整數轉換為BCD碼 |
BCD_I | BCDI OUT | BCD碼轉換為整數 |
ROUND | ROUND IN,OUT | 實數四舍五入為雙整數 |
TRUNC | TRUNC IN,OUT | 實數截位取整為雙整數 |
SEG | SEG IN,OUT | 段碼 |
DECO | DECO IN,OUT | 解碼 |
ENCO | ENCO IN,OUT | 編碼 |
表3、數據轉換指令
二十、時鍾指令
梯形圖 | 語句表 | 描述 |
---|---|---|
READ_RTC | TORD T | 讀取實時時鍾 |
SET_RTC | TODW T | 設置實時時鍾 |
READ_RTCX | TODRX T | 讀取擴展實時時鍾 |
SET_RTCX | TODWX T | 設置擴展實時時鍾 |
表4、時鍾指令
例:
圖4
如圖4所示,表示在I0.0的上升沿讀取日期時間值,用VB42開始的時間緩衝(chong) 區保存讀取的值。將所編程序下載到PLC之後,打開I0.0,可以在狀態表裏監控VD42和VD46中讀取的BCD碼值,圖中讀取的值為(wei) 2020年4月21日15點21分16秒,星期二;
在星期的取值中,星期的取值範圍為(wei) 07,1表示星期日,27表示星期一到星期六,為(wei) 0時將禁用星期(保持為(wei) 0)。
二十一、看門狗
CPU循環的循環監視時間的開始(500ms);程序執行時間超過500ms或者進入死循環時會(hui) 報錯。
二十二、過程映像區
在循環程序處理過程中,CPU需要一致的過程映像信號。為(wei) 此在程序執行之前讀取/寫(xie) 入過程信號。在隨後的程序處理中。CPU在對輸入(I)和輸出(Q)地址區尋址時不直接訪問信號模塊,而是訪問包含I/O過程映像的CPU係統存儲(chu) 區。
二十三、主程序、子程序、中斷程序
主程序循環執行,可以調用子程序;
子程序可以清晰的指出程序需要的功能,主程序中加入的子程序要先執行子程序才能執行下一段主程序,子程序中還可以調用子程序,一共可以調用8個(ge) ,想全部執行完才能進入下一段主程序;S7-200 CPU最多可以調用64個(ge) 子程序(CPU226為(wei) 128個(ge) );子程序可以帶參數調用,在子程序的局部變量表中設置參數的類型,一共可以帶16個(ge) 參數。
中斷程序:發生某一事件後執行此程序;隻能嵌一個(ge) 子程序;中斷程序有不同的優(you) 先級,中斷程序不能再被打斷,會(hui) 按照發生的時間順序和優(you) 先級排隊。
二十四、如圖5,分別為(wei) :
取反
與(yu)
或
異或
圖5
二十五、FOR/NEXT指令
每條FOR指令必須對應一條NEXT指令;FOR/NEXT指令循環可嵌套深度可達8層;FOR指令用沿觸發;循環結束,當下一次允許時,FOR/NEXT指令複位它自己,並把初始值拷貝到INDX中。
二十六、程序控製,順序控製
每條SCR指令必須對應有SCRE結束之靈;
不能把同一個(ge) S位用於(yu) 不同程序中,例如:如果在主程序中用了S0.1,在子程序中就不能再使用它;
在SCR段之間不能使用JMP和LBL指令,但可以在SCR段內(nei) 使用跳轉和標號指令;SCR段之間的跳轉,可以使用SCRT或複位/置位指令
在SCR段中不能使用END指令
二十七、程序控製其餘(yu) 指令
RET:根據前一個(ge) 邏輯從(cong) 子程序返回主程序;軟件自動在子程序最後增加無條件返回。
END:根據前一個(ge) 邏輯條件終止主程序;可以在主程序中使用“有條件結束”指令,但不能在子程序或中斷程序中使用;軟件自動在主程序最後增加無條件結束。
STOP:重新將PLC轉換至STOP模式。
WDR:重新觸發CPU的看門狗定時器,擴展掃描允許使用的時間,而不會(hui) 出現看門狗錯誤;慎用!!!
DIAG-LED:設置診斷LED燈;當輸入參數IN的數值為(wei) 零,則診斷LED會(hui) 被設置為(wei) 不發光。如果輸入參數IN的數值大於(yu) 零,則診斷LED會(hui) 被設置為(wei) 發光(黃色)。
二十八、BGN-ITIME和CAL-ITIME指令可測量兩(liang) 任務的時間間隔,也可間接實現定時功能。
二十九、rs-485口MODBUS通訊
Modbus主站讀寫(xie) 程序
注意:1、Modbus RTU主站功能是通過指令庫中預先編好的程序功能塊實現的,該庫隻針對Port0口有效
2、Modbus RTU主站使用了一些用戶中斷,在用戶程序中不能禁止中斷
3、此處訪問的為(wei) 一個(ge) 從(cong) 站,若訪問不同的從(cong) 站,可通過改變從(cong) 站地址來實現
第一步初始化:複位modbus庫完成位,初始化完成後,啟動讀寫(xie) 指令m0.1置位
第三步:M0.1置位讀取從(cong) 站數據,讀取保持寄存器40001-40008 8個(ge) 數據根據數據格式寫(xie) 入&VB1000,40001,40002為(wei) 32位浮點數,則保持在VB1000 VB1001 VB1002 VB1003中,依次類推,讀取完成M2.1置位,複位讀取從(cong) 站保持寄存器MO.1 M2.3
M2.2置位,寫(xie) 數據開始,VB3000寫(xie) 入00001中,寫(xie) 完成,M2.3置位,開始讀,M2.2複位。
將程序寫(xie) 入PLC,通過串口調試助手,PLC給電腦發送如下指令
03 02 00 00 00 08 78 2E是PLC要讀取從(cong) 站的輸入點
03 0F 00 00 00 08 01 00 7F 4C是PLC要寫(xie) 從(cong) 站的輸入點
03 03 00 00 00 08 45 EE是PLC要讀從(cong) 站的保持寄存器
三十、PLC為(wei) 從(cong) 站MODBUS通訊
PLC中各寄存器地址與(yu) MODBUS地址對照表
功能號 | Modbus地址 | s7-200Plc地址 | 描述 |
---|---|---|---|
0 | 00001—00128 | Q0.0—Q15.7 | Q輸出 |
00001 | Q0.0 | ||
00002 | Q0.1 | ||
00003 | Q0.2 | ||
… | … | ||
00127 | Q15.6 | ||
00128 | Q15.7 | ||
1 | 10001—10128 | I0.0—I15.7 | I輸入 |
10001 | I0.0 | ||
10002 | I0.1 | ||
10003 | I0.2 | ||
… | … | ||
10127 | I15.6 | ||
10128 | I15.7 | ||
3 | 30001—30032 | AIW0—AIW62 | AI模擬量輸入 |
30001 | AIW0 | ||
30002 | AIW2 | ||
30003 | AIW4 | ||
… | … | ||
30031 | AIW60 | ||
30032 | AIW62 | ||
4 | 40001—4**** | T—T+2*(****-1) | V區(T為起始位) |
40001 | T | ||
40002 | T+2*(2-1) | ||
40003 | T+2*(3-1) | ||
… | … |
三十一、SCR指令
SCR指令專(zhuan) 門用於(yu) 編製順序控製程序。順序控製程序被分為(wei) LSCR與(yu) SCRE指令之間的若幹個(ge) SCR段,一個(ge) SCR段對應於(yu) 順序功能圖中的一步。
一個(ge) SCR程序段一般有以下三種功能:
1)驅動處理:在該段狀態有效時,要做什麽(me) 工作,有時也可能不做任何工作。
2)指定轉移條件和目標:滿足什麽(me) 條件後狀態轉移到何處。
3)轉移源自動複位功能:狀態發生轉移後,置位下一個(ge) 狀態的同時,自動複位原狀態。
S7-200 PLC提供了三條順序控製指令:裝載SCR(LSCR)指令、SCR傳(chuan) 輸(SCRT)指令和SCR結束(SCRE)指令。如下圖所示
SCR指令的操作如下:
1)裝載SCR (LSCR,Load SCR)指令用來表示一個(ge) SCR段(即順序功能圖中的步)的開始。指令中的操作數S—Bit為(wei) 順序控製繼電器S(BOOL型)的地址,順序控製繼電器S為(wei) 1狀態時,執行對應的SCR段中的程序,反之則不執行。
2) SCR傳(chuan) 輸(SCRT,SCR Transition)指令將程序控製權從(cong) 一個(ge) 激活的SCR段傳(chuan) 遞到另一個(ge) SCR段,即步的活動狀態的轉換。執行SCRT指令,當SCRT線圈“得電”時,SCRT指令中指定的順序功能圖中的後續步對應的順序控製繼電器S位置位(變為(wei) 1狀態),同時當前活動步對應的順序控製繼電器S位被係統程序複位(變為(wei) 0狀態),當前步變為(wei) 不活動步。
在SCRT指令執行時,複位當前激活的程序段的S位並不會(hui) 影響S堆棧。SCR段會(hui) 一直保持能流直到退出。
3) SCR結束(SCRE,SCR END)指令標誌著SCR段的結束。
使用SCR指令時有以下的限製:
1) SCR指令僅(jin) 對元件S有效,順序控製繼電器S也具有一般繼電器的功能,所以對它能夠使用其他指令。
2)不能把同一個(ge) S位用於(yu) 不同程序中,例如如果在主程序中使用了SO.1,則在子程序中就不能再使用它。
3)在SCR段中不能使用JMP和LBL指令,即不允許用跳轉的方法跳入或跳出SCR段;但可以在SCR段附近使用跳轉和標號指令或者在段內(nei) 跳轉。
4)在SCR段中不能使用FOR、NEXT和END指令。
5)在狀態發生轉移後,所有的SCR段的元件一般也要複位,如果希望繼續輸出,可使用置位/複位指令。
6)在使用順序功能圖時,SCR段的編寫(xie) 可以不按順序編排。
三十二、閉環控製與(yu) PID控製器
PID控製(即比例-積分-微分)優(you) 點:
1、即使沒有控製係統的數學模型,也能得到比較滿意的控製效果;
2、通過調用PID指令來編程,程序設計簡單,參數調整方便;
3、有較強的靈活性和適應性,根據被控對象的具體(ti) 情況,可以采用P、PI、PD、和PID等方式,S7-200的PID指令還采用了一些改進的控製方式。
模擬量閉環控製:
在模擬量閉環控製係統中,被控量c(t)被傳(chuan) 感器和變送器轉換為(wei) 標準量程的直流電流、電壓信號PV(t),PLC用模擬量輸入模塊中的A-D轉換器,將它們(men) 轉換為(wei) 時間上離散的多位二進製過程變量(又稱為(wei) 反饋值)PVn。
模擬量與(yu) 數字量之間的相互轉換和PID程序的執行都是周期性的操作,其間隔時間稱為(wei) 采樣周期Ts。各數字量中的下標n表示該變量是第n次采樣計算時的數字量。
工作原理:
閉環負反饋控製可以使過程變量PVn等於(yu) 或跟隨設定值SPn。
性能指標:
由於(yu) 給定輸入信號或擾動輸入信號的變化,使係統的輸出量發生變化,在係統輸出量達到穩態之前的過程稱為(wei) 過渡過程或動態過程;係統的動態過程的性能指標用階躍響應的參數來描述,階躍響應是指係統的輸入信號階躍變化時係統的響應。
閉環控製帶來的問題:
使用閉環控製後,並不能保證得到良好的動靜態性能,這主要是由係統中的滯後因素造成的,閉環中的滯後因素主要來源於(yu) 被控對象。
閉環控製反饋極性的確定:
閉環控製必須保證係統是負反饋(誤差=設定值-過程變量),而不是正反饋(誤差=設定值+過程變量);如果係統接成了正反饋,將會(hui) 失控,被控量會(hui) 往單一方向增大或減少,給係統的安全帶來極大的威脅。
判斷反饋極性的辦法:
在調試時斷開模擬量輸出模塊與(yu) 執行機構之間的連線,在開環狀態下運行PID控製程序。如果控製器有積分環節,因為(wei) 反饋被斷開了,不能消除誤差,模擬量輸出模塊的輸出電壓或電流會(hui) 向一個(ge) 方向變化;這時如果假設接上執行機構,能減少誤差,則為(wei) 負反饋,反之為(wei) 正反饋。
自己學習(xi) 所記錄,有不足請指教,若有興(xing) 趣一起交流,關(guan) 注微信公眾(zhong) 號:18luck网站