時間:2010-10-11 16:29:41來源:majuan
摘要:介紹了西門子S7-200PLC與安控Super E40系列RTU模塊系統(tǒng)進行自由端口模式的通訊,解決了安控RTU模塊在缺少AO模塊的情況下,如何通過與西門子PLC自由端口通訊,通過西門子的模擬量I/O輸出模擬量,從而達到控制電動球閥的目的。給出了西門子S7-200的完整編程程序,以及編程過程中應(yīng)該注意的問題,具有一定的實用性。
0 引言
西門子S7-200系列PLC是西門子家族中最小型的PLC ,除具有的一般功能外,以其強大的通信能力區(qū)別于一般的小型PLC ,可通過網(wǎng)絡(luò),分布系統(tǒng)輕易的完成復(fù)雜的控制要求。S7-200系列PLCCPU在內(nèi)部都集成了一個或幾個通信口,通信口標(biāo)準(zhǔn)為RS485口,利用相應(yīng)的電纜就能構(gòu)成具有多種通信功能的復(fù)雜通信網(wǎng)絡(luò)[1]。Super E40系列RTU是安控公司集多年的開發(fā)、工程經(jīng)驗設(shè)計的新型RTU產(chǎn)品,它可實現(xiàn)對工業(yè)現(xiàn)場信號的采集和對現(xiàn)場設(shè)備的控制。與常用的可編程控制器PLC相比,具有更優(yōu)良的通訊能力[2]。
本項目應(yīng)用到Super E40的A32-M1 CPU模塊、A32-L3通信模塊、AC101模擬量輸入模塊、AC133數(shù)字量輸出模塊、AC141脈沖量輸入模塊。由于缺少模擬量輸出模塊,而單獨購買AO模塊價格昂貴,所以本文利用西門子S7-200特有的自由端口通訊模式與安控RTU通訊,安控將采集到的模擬量經(jīng)過數(shù)據(jù)轉(zhuǎn)換發(fā)送到西門子S7-200PLC中,西門子通過模擬量輸出端口輸出電流,驅(qū)動球閥達到相應(yīng)的球閥開度,具有一定的實用性。
1 系統(tǒng)概述
本課題來源于本校SRTP項目(大學(xué)生科研訓(xùn)練計劃項目)和學(xué)校實驗技術(shù)項目,題目為“基于GPRS和RTU的過程控制系統(tǒng)”,該系統(tǒng)是基于PLC模塊技術(shù)構(gòu)造的過程控制系統(tǒng),可用于天然氣和流體調(diào)壓站及管道的安全監(jiān)控等。
該平臺由一路管道組成,配有壓力變送器,電動球閥,差壓計,流量計,溫度變送器,吸水泵及水箱??刂乒駟为毞胖?,控制柜里安裝安控Super E40系列RTU模塊系統(tǒng)。通過變送器將壓力、溫度等傳感器的信號轉(zhuǎn)換為標(biāo)準(zhǔn)電信號,經(jīng)由RTU進行信號處理后以有線或無線方式將數(shù)據(jù)傳輸?shù)角爸脵C進行數(shù)據(jù)處理,處理后的控制信號又送至電動球閥并進行實時動作。本項目應(yīng)用到Super E40的A32-M1 CPU模塊、A32-L3通信模塊、AC101模擬量輸入模塊、AC133數(shù)字量輸出模塊、AC141脈沖量輸入模塊,西門子S7-200,系統(tǒng)總體框圖如圖1所示。
2 西門子通訊自由端口模式
CPU的串行通信接口可以由用戶程序控制,這種操作模式稱為自由端口模式。通過使用接收中斷、發(fā)送中斷、字符中斷、發(fā)送指令(XMT)和接收指令(RCV),自由端口通信可以控制S7-200CPU通信口的操作模式。利用自由端口模式,可以實現(xiàn)用戶定義的通信協(xié)議,連接多種智能設(shè)備[3]。通過SMB30,允許在CPU處于RUN模式時通信口0使用自由端口模式。CPU處于STOP模式時,停止自由端口通信,通信口強制轉(zhuǎn)換成PPT協(xié)議模式,從而保證了編程軟件對PLC編程和控制的功能。
SMB30用于設(shè)置端口0通信的波特率和奇偶校驗等參數(shù)。本文給西門子設(shè)定的自由口通信,波特率為9600,數(shù)據(jù)位8,停止位1,無校驗,結(jié)束符為 A,其主程序如下所示:
主程序:
網(wǎng)絡(luò)1:// 設(shè)置控制方式為自由口通信方式,啟動接收字符中斷 //
LD SM0.1 //PLC首次掃描
MOVB 16#09, SMB30 //自由口通信,波特率為9600,數(shù)據(jù)位8,停止位1,無校驗
MOVB 16#B0, SMB87 //初始化RCV,允許RCV,有結(jié)束符,檢查空閑時間
MOVB 16#0A, SMB89 //結(jié)束符為 A
MOVB 6, SMB94 //一次接收的最大字符6個
ATCH INT_0:INT0, 23 //接收完成中斷0
ATCH INT_1:INT1, 9 //接收完成中斷1
ENI //允許用戶中斷
RCV VB199, 0 //端口0的接受緩沖區(qū)指針指向VB199
網(wǎng)絡(luò)2:
LD SM0.1
CALL 初始化:SBR1 //調(diào)用初始化子程序
網(wǎng)絡(luò)3:
LD SM0.0
MOVB 1, VB99
MOVW +1, VW100 //接收到數(shù)據(jù)后將0送到發(fā)送區(qū)
網(wǎng)絡(luò)4:
LD SM0.5
XMT VB99, 0 //將數(shù)據(jù)0從端口0發(fā)送出去
西門子模擬量輸出端口輸出模擬量信號并送入電動球閥,電動球閥做出實時動作。如何控制球閥的開度成為關(guān)鍵問題。PID控制器是應(yīng)用最廣的閉環(huán)控制器,但是PID控制方式主要應(yīng)用于控制對象的慣性滯后較大時。鑒于本課題對滯后性要求不高,以及模擬量輸入輸出較少,所以本文給出了一種較為簡單的控制方法。
將球閥開度以10°為單位分為9個區(qū)域,9個區(qū)域分別對應(yīng)相應(yīng)的驅(qū)動電流,安控RTU數(shù)據(jù)字為10000~50000,西門子S7-200數(shù)據(jù)字為0~+32000,所分的區(qū)域如表1所示。它們之間數(shù)據(jù)的傳送是通過十六進制傳輸?shù)?,西門子接收到的數(shù)據(jù)為十六進制,并存入指定的單元中。拿安控RTU數(shù)據(jù)字50000說,將其轉(zhuǎn)換成十六進制數(shù)為C350,將兩個字節(jié)分別存于西門子指定的單元中,最后經(jīng)過數(shù)據(jù)轉(zhuǎn)換為十進制數(shù)過程中超過范圍。所以在處理的過程中運用到一些方法,就是只將第一個字節(jié)送到西門子,拿50000來說,只將C3傳送到西門子中,轉(zhuǎn)換成相應(yīng)的十進制數(shù)為195,這樣就比較好處理。
球閥開度 |
所需的電流 |
安控RTU數(shù)據(jù)字 |
西門子數(shù)據(jù)字 |
安控RTU數(shù)據(jù)字對應(yīng)的十六進制數(shù) |
送到西門子中的第一字節(jié)對應(yīng)的十進制數(shù) |
區(qū)域x |
0° |
4mA |
10000 |
6400 |
16#2710 |
39 |
0≤x≤39 |
10° |
6mA |
15000 |
9600 |
16#3A98 |
58 |
39<x<58 |
20° |
8mA |
20000 |
12800 |
16#4E20 |
78 |
58≤x<78 |
30° |
10mA |
25000 |
16000 |
16#61A8 |
97 |
78≤x<97 |
40° |
12mA |
30000 |
19200 |
16#7530 |
117 |
97≤x<117 |
50° |
14mA |
35000 |
22400 |
16#88B8 |
136 |
117≤x<136 |
60° |
16mA |
40000 |
25600 |
16#9C40 |
156 |
136≤x<156 |
70° |
18mA |
45000 |
28800 |
16#AFC8 |
175 |
156≤x<175 |
90° |
20mA |
50000 |
32000 |
16#C350 |
195 |
175≤x≤195 |
表1 球閥開度區(qū)域
調(diào)節(jié)球閥開度子程序和初始化子程序如下所示。
調(diào)整球閥開度子程序:
網(wǎng)絡(luò)1:
LD SM0.0
BTI VB200, VW200 //將接收到的字節(jié)數(shù)據(jù)轉(zhuǎn)換成字
網(wǎng)絡(luò)2: //分區(qū)//
LD SM0.0
MOVW +39, VW0
MOVW +58, VW2
MOVW +78, VW4
MOVW +97, VW6
MOVW +117, VW8
MOVW +136, VW10
MOVW +156, VW12
MOVW +175, VW14
MOVW +195, VW16
網(wǎng)絡(luò)3: //判斷是否在175≤x≤195區(qū)域,如在輸出相應(yīng)電流,不在執(zhí)行下面程
序//
LD SM0.0
LDW>= VW200, VW14
AW<= VW200, VW16
MOVW +32000, AQW0
ENI
網(wǎng)絡(luò)4—網(wǎng)絡(luò)11 :判斷是否在156≤x<175,136≤x<156,117≤x<136,97≤x<117,78≤x<97,58≤x<78,39<x<58,0≤x≤39區(qū)域,其程序與網(wǎng)絡(luò)3一樣。
初始化子程序:
網(wǎng)絡(luò)1://西門子處于RUN時VW200為0,輸出電流4mA //
LD SM0.1
MOVW +0, VW200
MOVW +6400, AQW0
ENI
接收完成中斷0和接收完成中斷1程序如下:
接收完成中斷0:INT0
網(wǎng)絡(luò)1:
LDB= SMB86, 16#20 //SMB86 等于16#20,表示PLC收到結(jié)速符
S Q1.0, 1 //收到后將Q1.0置1,燈亮
CALL 調(diào)整球閥開度子程序:SBR0
CRETI
NOT //否則將Q1.0置0,燈滅
R Q1.0, 1
RCV VB199, 0
接收完成中斷1:INT1
INT1:
網(wǎng)絡(luò)1:
LD SM0.0
RCV VB199, 0 //接收數(shù)據(jù)
3 程序調(diào)試
在編程過程中用到了PLC串口通訊調(diào)試軟件,軟件可以在網(wǎng)上下載。在與安控RTU通訊之前先將西門子S7-200與PC機通訊,檢驗程序的正確性后再與安控RTU進行通訊調(diào)試。在調(diào)試西門子S7-200與PC機通訊的過程中出現(xiàn)的問題以及解決方法:
①程序跑飛的問題,即在與PC機通訊時,用PLC串口通訊調(diào)試軟件向PLC中發(fā)送數(shù)據(jù),當(dāng)連續(xù)地發(fā)送數(shù)據(jù)時,PLC在接收到第一個字符后就會出現(xiàn)通訊錯誤現(xiàn)象。程序跑飛最主要的原因是程序結(jié)構(gòu)問題,只要精簡一下程序結(jié)構(gòu)使其更加結(jié)構(gòu)化,問題就可以解決。
②西門子S7-200和安控RTU的波特率,數(shù)據(jù)位,校驗位,停止位不一致。如果兩者不完全一致,是不能進行通訊的。
4 總結(jié)
本文給出了關(guān)于西門子S7-200與其他設(shè)備之間利用自由端口通訊的完整通訊程序,以及給出的球閥分區(qū)域方法有一定的創(chuàng)新性,可以應(yīng)用于很多領(lǐng)域中,并給出在編程過程中遇到的問題和解決方法,具有很大的實用性,可以應(yīng)用于實際項目中。
參考文獻:
[1]張維笛,周澤魁,楊麗明,張光新.利用自由通信口模式實現(xiàn)PLC與遠程數(shù)據(jù)終端的信息傳送[J]機電工程,2002,19卷,第6期
[2] Super E40系列RTU使用手冊
[3]廖常初.PLC編程及應(yīng)用(第二版)[M]北京:機械工業(yè)出版社,2005
標(biāo)簽:
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.wangxinlc.cn)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>2025-05-19
2025-04-30
性能躍升20%!維宏NK300CX Plus數(shù)控系統(tǒng)...
2025-04-11
rpi-image-gen:樹莓派軟件鏡像構(gòu)建的終...
2025-04-08
【產(chǎn)品解讀】全面提升精密制造檢測節(jié)拍...
2025-03-31