可編程控制器在微電機控制中的應用
1 引言
隨著PLC在工廠自動化中的廣泛應用,各PLC生產商不斷推承出新,功能更加完善,性能更加優異的PLC不斷涌現。以德國西門子公司為例,90年代中期,繼S5系列PLC之后,就相繼推出了S7系列的PLC。該系列PLC不僅具有S5系列PLC的優點,而且更加注重功能的改進和集成。對于現在應用廣泛的閉環控制、模擬量處理、通信聯網、脈沖輸出等均提供了相應的指令及使用途徑。編程軟件STEP 7為用戶提供了界面友好且功能強大的開發工具。本文擬就S7-200系列PLC中CPU214通過與一臺SIMOVERT微型主電機驅動器通信來起動、停止電機,以及改變電機的頻率,介紹其特點并給出相應的應用程序流程圖或源程序。

2 硬件要求
(1) 硬件組成
一臺帶輸入仿真器的S7-200 CPU214,一根RS 485電纜,一臺微型主電機驅動器和電機;
(2) 參數設置
正確地將電機和微型主電機驅動器接好線,并且所用電機和微型主電機驅動器的參數已通過人工設定,且微型主電機驅動器必須設置在遙控方式(P910=1),波特率:19.2kB(P92=7
),地址1(P91=1);
(3) 接線方式
用一根帶9針陽性插頭的RS 485通信電纜接在S7-200 CPU214的1、3、8端上,電纜另一端是插孔,分別接到微型主電機驅動器的13、14、15端子上。
3 分析及說明
(1) S7-200自由通信口模式
S7-200 CPU214與SIMOVERT微型主電機驅動器通信是通過S7-200自由通信口模式進行的,使用USS5字協議。輸入仿真器用來初始化發給電機驅動器的命令。用程序監視RUN/TERM開關,并選擇相應的協議來設置自由通信口模式的控制字節(SMB30);
(2) 輸入點分配
I0.0 上升沿有效 使電機以上次命令的恒定頻率運轉;
I0.2 上升沿有效 使電機以上次命令的頻率開始變頻運轉;
I0.4 上升沿有效 停止電機;
I0.5 電平有效 以1或2倍率改變頻率:
I0.5="0":1倍,I0.5="1":2倍;
I0.6 上升沿有效 以1或2倍頻率增量增加電機頻率;
I0.7 上升沿有效 以1或2倍頻率增量降低電機頻率;
I1.0 電平有效 控制電機旋轉方向,I1.0=0:電機正轉,I1.0=1:電機反轉;
(3) 程序檢測
首先對微型主電機驅動器的發送要計時,如果失敗,允許再試發送,最多可試發送3次。然后,對來自微型主電機驅動器的接收也要計時,在退出發送接收操作之前可重試多達3次。對來自微型主電機驅動器的響應信息要進行有效性校驗(STX,LEN,ADR及BCC),任何被檢測到的錯誤都要進行顯示;
(4) 輸出點分配
QB0用來顯示檢測到的錯誤信息,具體顯示含義如下:
"0"表示無錯誤;"1"表示非法的響應(除去壞的BBC);"2"表示壞的BBC;"3"表示發送超時;"4"表示接收超時。
4 程序結構
(1) 程序結構
整個控制程序由1個主程序(MAIN)、8個子程序(SBR 0-7)及4個中斷程序(INT 0-3)組成。各程序所完成的功能如下:
l MAIN 主程序:監視用于自由通信口/PPI通信切換的RUN/TERM開關,尋找輸入信號上升沿作為電機運行命令。
? SBR0 設置自由通信口通信:首次掃描時設置自由通信口模式的參數。
?SBR1 RUN子程序:設定電機恒速運轉。
?SBR2 RAMP子程序:設定電機變速運轉。
? SBR3 增加頻率倍率的子程序:增加微型主電機驅動器的輸出頻率。
?SBR4 降低頻率倍率的子程序:降低微型主電機驅動器的輸出頻率。
?SBR5 STOP子程序:停止電機。
?SBR6 計算輸出信息的BCC。
?SBR7 發送信息,初始化發送定時器。
? INT0 發送(XMT)中斷處理程序,打開接收器。
? INT1 發送超時的中斷處理程序,最多試發3次。
?INT2 接收字符的中斷處理程序。
? INT3 接收超時的中斷處理程序,最多試收3次。
(2) 程序流程圖如圖1所示。
圖1 程序流程圖
5 程序及注釋
由于文章篇幅的限制,在此僅給出與通信有關部分的源程序。
SBR 7 //初始化XTM及XTM定時器
XMT VB99,0 //發送
ATCH 0,9 //捕捉XTM發送中斷,并
//調用中斷程序0
MOVB 255,SMB34 //設置XTM定時器255MS
ATCH 1,10 //捕捉XTM定時器中斷,
//并調用中斷1
RET
INT 0 //中斷程序0,XMT發送中斷處理,
//關XMT定時器
DTCH 10 //退出XMT定時器
DTCH 9 //中止XMT事件
MOVW 3,VW204 //刷新XMT重試次數
MOVW 14,VW208 //響應信息中接收的字符數
MOVW 0,VW215 //清BCC累加器
MOVD &VB114,VD211 //設置接收緩沖區指針
ATCH 2,8&n
bsp; //捕捉RCV(接收)中斷,并
//調用中斷程序2
ATCH 3,10 //捕捉接收定時器中斷,并調
//用中斷程序3
RETI
INT 1 //定時器中斷0處理--發送
DTCH 9 //停止XMT(發送)
DTCH 10 //退出定時器
DECW VW204 //重試次數減1,若為0,且
LD SM1.0 //SM1.0=1,則
MOVB 3,VB210
MOVB 3,QB0 //用QB0指示發送超時
MOVW 3,VW204 //刷新發送重試計數
S M0.0,1 //使RUN、RAMP有效
CRETI //條件返回
XMT VB99,0 //重試發送
ATCH 0,9 //捕捉XMT中斷,并調用
//中斷程序0
MOVB 255,SMB34 //設置XMT定時器為避
//免55mS
ATCH 1,10 //捕捉定時中斷,并調用
//中斷程序
RETI
INT 2 //接受字符處理
MOVB SMB2,AC0 //得到接收字符
XORW AC0,VW215 //累積BCC
MOVB AC0,*VD211 //把接收到的字符送
//入緩沖區
INCD VD211 //緩沖區指針加1
DECW VW208 // 有待接收的字符總數減1
LDN SM1.0 //檢驗是否結束
CRETI
NOT
DTCH 10 //退出接收定時器
DTCH 8 //關接收
AB= 0,VB216 //檢驗已算好的BCC是否為0
NOT
MOVB 2,VB210 //壞的BCC操作碼
MOVB 2,QB0
JMP 0
LDB= VB114,16#02 // STX第一個字符嗎
AB= VB115,16#0C //長度=12嗎?
AB= VB116,VB102 //將信息發往同一從
//設備嗎?
MOVB 0,VB210 //操作正確
MOVB 0,QB0
JMP 0
LD SM0.0
MOVB 1,VB210 //信息中有不對的地方
MOVB 1,QB0
LBL 0
MOVW 3,VW206 //刷新接收可重試次數
RETI
INT 3 //定時器中斷0處理-接收
隨著PLC在工廠自動化中的廣泛應用,各PLC生產商不斷推承出新,功能更加完善,性能更加優異的PLC不斷涌現。以德國西門子公司為例,90年代中期,繼S5系列PLC之后,就相繼推出了S7系列的PLC。該系列PLC不僅具有S5系列PLC的優點,而且更加注重功能的改進和集成。對于現在應用廣泛的閉環控制、模擬量處理、通信聯網、脈沖輸出等均提供了相應的指令及使用途徑。編程軟件STEP 7為用戶提供了界面友好且功能強大的開發工具。本文擬就S7-200系列PLC中CPU214通過與一臺SIMOVERT微型主電機驅動器通信來起動、停止電機,以及改變電機的頻率,介紹其特點并給出相應的應用程序流程圖或源程序。

2 硬件要求
(1) 硬件組成
一臺帶輸入仿真器的S7-200 CPU214,一根RS 485電纜,一臺微型主電機驅動器和電機;
(2) 參數設置
正確地將電機和微型主電機驅動器接好線,并且所用電機和微型主電機驅動器的參數已通過人工設定,且微型主電機驅動器必須設置在遙控方式(P910=1),波特率:19.2kB(P92=7
),地址1(P91=1);
(3) 接線方式
用一根帶9針陽性插頭的RS 485通信電纜接在S7-200 CPU214的1、3、8端上,電纜另一端是插孔,分別接到微型主電機驅動器的13、14、15端子上。
3 分析及說明
(1) S7-200自由通信口模式
S7-200 CPU214與SIMOVERT微型主電機驅動器通信是通過S7-200自由通信口模式進行的,使用USS5字協議。輸入仿真器用來初始化發給電機驅動器的命令。用程序監視RUN/TERM開關,并選擇相應的協議來設置自由通信口模式的控制字節(SMB30);
(2) 輸入點分配
I0.0 上升沿有效 使電機以上次命令的恒定頻率運轉;
I0.2 上升沿有效 使電機以上次命令的頻率開始變頻運轉;
I0.4 上升沿有效 停止電機;
I0.5 電平有效 以1或2倍率改變頻率:
I0.5="0":1倍,I0.5="1":2倍;
I0.6 上升沿有效 以1或2倍頻率增量增加電機頻率;
I0.7 上升沿有效 以1或2倍頻率增量降低電機頻率;
I1.0 電平有效 控制電機旋轉方向,I1.0=0:電機正轉,I1.0=1:電機反轉;
(3) 程序檢測
首先對微型主電機驅動器的發送要計時,如果失敗,允許再試發送,最多可試發送3次。然后,對來自微型主電機驅動器的接收也要計時,在退出發送接收操作之前可重試多達3次。對來自微型主電機驅動器的響應信息要進行有效性校驗(STX,LEN,ADR及BCC),任何被檢測到的錯誤都要進行顯示;
(4) 輸出點分配
QB0用來顯示檢測到的錯誤信息,具體顯示含義如下:
"0"表示無錯誤;"1"表示非法的響應(除去壞的BBC);"2"表示壞的BBC;"3"表示發送超時;"4"表示接收超時。
4 程序結構
(1) 程序結構
整個控制程序由1個主程序(MAIN)、8個子程序(SBR 0-7)及4個中斷程序(INT 0-3)組成。各程序所完成的功能如下:
l MAIN 主程序:監視用于自由通信口/PPI通信切換的RUN/TERM開關,尋找輸入信號上升沿作為電機運行命令。
? SBR0 設置自由通信口通信:首次掃描時設置自由通信口模式的參數。
?SBR1 RUN子程序:設定電機恒速運轉。
?SBR2 RAMP子程序:設定電機變速運轉。
? SBR3 增加頻率倍率的子程序:增加微型主電機驅動器的輸出頻率。
?SBR4 降低頻率倍率的子程序:降低微型主電機驅動器的輸出頻率。
?SBR5 STOP子程序:停止電機。
?SBR6 計算輸出信息的BCC。
?SBR7 發送信息,初始化發送定時器。
? INT0 發送(XMT)中斷處理程序,打開接收器。
? INT1 發送超時的中斷處理程序,最多試發3次。
?INT2 接收字符的中斷處理程序。
? INT3 接收超時的中斷處理程序,最多試收3次。
(2) 程序流程圖如圖1所示。
圖1 程序流程圖
5 程序及注釋
由于文章篇幅的限制,在此僅給出與通信有關部分的源程序。
SBR 7 //初始化XTM及XTM定時器
XMT VB99,0 //發送
ATCH 0,9 //捕捉XTM發送中斷,并
//調用中斷程序0
MOVB 255,SMB34 //設置XTM定時器255MS
ATCH 1,10 //捕捉XTM定時器中斷,
//并調用中斷1
RET
INT 0 //中斷程序0,XMT發送中斷處理,
//關XMT定時器
DTCH 10 //退出XMT定時器
DTCH 9 //中止XMT事件
MOVW 3,VW204 //刷新XMT重試次數
MOVW 14,VW208 //響應信息中接收的字符數
MOVW 0,VW215 //清BCC累加器
MOVD &VB114,VD211 //設置接收緩沖區指針
ATCH 2,8&n
bsp; //捕捉RCV(接收)中斷,并
//調用中斷程序2
ATCH 3,10 //捕捉接收定時器中斷,并調
//用中斷程序3
RETI
INT 1 //定時器中斷0處理--發送
DTCH 9 //停止XMT(發送)
DTCH 10 //退出定時器
DECW VW204 //重試次數減1,若為0,且
LD SM1.0 //SM1.0=1,則
MOVB 3,VB210
MOVB 3,QB0 //用QB0指示發送超時
MOVW 3,VW204 //刷新發送重試計數
S M0.0,1 //使RUN、RAMP有效
CRETI //條件返回
XMT VB99,0 //重試發送
ATCH 0,9 //捕捉XMT中斷,并調用
//中斷程序0
MOVB 255,SMB34 //設置XMT定時器為避
//免55mS
ATCH 1,10 //捕捉定時中斷,并調用
//中斷程序
RETI
INT 2 //接受字符處理
MOVB SMB2,AC0 //得到接收字符
XORW AC0,VW215 //累積BCC
MOVB AC0,*VD211 //把接收到的字符送
//入緩沖區
INCD VD211 //緩沖區指針加1
DECW VW208 // 有待接收的字符總數減1
LDN SM1.0 //檢驗是否結束
CRETI
NOT
DTCH 10 //退出接收定時器
DTCH 8 //關接收
AB= 0,VB216 //檢驗已算好的BCC是否為0
NOT
MOVB 2,VB210 //壞的BCC操作碼
MOVB 2,QB0
JMP 0
LDB= VB114,16#02 // STX第一個字符嗎
AB= VB115,16#0C //長度=12嗎?
AB= VB116,VB102 //將信息發往同一從
//設備嗎?
MOVB 0,VB210 //操作正確
MOVB 0,QB0
JMP 0
LD SM0.0
MOVB 1,VB210 //信息中有不對的地方
MOVB 1,QB0
LBL 0
MOVW 3,VW206 //刷新接收可重試次數
RETI
INT 3 //定時器中斷0處理-接收
文章版權歸西部工控xbgk所有,未經許可不得轉載。