minitii轉(zhuǎn)換器通訊協(xié)議簡介
在這個方案中,minitii與下位設備的硬件連接為雙絞線,minitii及下位各設備都并入雙絞線組成的westinghouseincom網(wǎng)絡,在該網(wǎng)絡中各通訊主體使用二進制通訊方式,數(shù)據(jù)幀均由33位二進制數(shù)構(gòu)成,minitii充當主站(master)角色,對下位各設備發(fā)起通訊,進行輪詢。
pcm311模塊與minitii轉(zhuǎn)換器進行的是ascii碼通訊方式,而minitii轉(zhuǎn)換器與下位dt3000、mp3000、iq200各系列設備的通訊方式為二進制碼通訊,實際上minitii所起到的作用是將pcm模塊發(fā)出的ascii碼指令幀轉(zhuǎn)譯為二進制碼指令幀,當然,在通訊過程中,我們只需關(guān)心ascii碼通訊幀的格式,minitii會自動將其轉(zhuǎn)為二進制格式后發(fā)到incom網(wǎng)絡中去。
minitii模塊的25針rs232串行口接收的ascii碼幀由10個ascii碼字符組成,分為控制指令幀、數(shù)據(jù)指令幀兩類,大致形式如下:
控制指令:
(stx)(c/d)(inst)(comm)(scomm)(address)(sumcheck)
數(shù)據(jù)指令:
(stx)(c/d)(data)(sumcheck)
stx:第2號ascii碼,占一位
c/d:控制指令時為1,數(shù)據(jù)指令時為0,占一位
inst、comm、scomm:由這三個數(shù)字需要返回的參數(shù),各占一位
address:指令的發(fā)送對象,是一個三位數(shù)的十六制數(shù),占三位
sumcheck:和校驗碼,占二位
data:返回的數(shù)據(jù)信息,占六位
minitii串行通訊參數(shù)在其面板上通過開關(guān)來選定。
2.2fx2nplc通訊協(xié)議簡介
fx2n是三菱品牌plc在小系統(tǒng)控制應用中使用較多的一種經(jīng)濟型plc,外部設備通過232bd、485bd等插件或485adp等模塊可與其建立ascii碼串行通訊,讀取plc內(nèi)部寄存器的值。其協(xié)議格式如下:
(1)讀寄存器
*外設:(enq)(站號)(pc號)(命令字符)(等待時間)(頭元件)(元件數(shù))(和校驗)
*plc:(stx)(站號)(pc號)(返回數(shù)據(jù))(etx)(和校驗)
*外設:(ack)(站號)(pc號)
(2)寫寄存器
*外設:(enq)(站號)(pc號)(命令字符)(等待時間)(頭元件)(元件數(shù))(寫出數(shù)據(jù))(和校驗)
*plc:(stx)(站號)(pc號)
*enq、stx、ack、etx:為相應的ascii碼
*站號:plc的站地址,為兩位十六進制數(shù)(00-0fh),由plc的d8121寄存器
*pc號:用于a系列melsecnet網(wǎng)絡中的plc,對fx2n均為ffh
*命令字符:分為位讀(br)、位寫(bw)、字讀(wr)、字寫(ww)
*等待時間:以10ms為單位,以十六進制數(shù)表示,占一個字符(0-f)
*頭元件:為要讀、寫的開始元件號,如m0001、d0000等。
*元件數(shù):為要讀、寫的元件個數(shù)。
*返回數(shù)據(jù)、寫出數(shù)據(jù):為從plc返回的寄存器值或要寫到plc的數(shù)據(jù)值
由于fx2n與*控制柜距離較遠,故本系統(tǒng)中采用fx2n與485bd插件,pcm311模塊經(jīng)232/485轉(zhuǎn)換器與485bd相連,轉(zhuǎn)換器與485bd之間采用兩對雙絞線相連,全雙工方式通訊,plc串行通訊參數(shù)在d8120中設定。
2.3megabasic的語法簡介
(1)串口操作:pcm模塊共有二個串口,它們均可在megabasic程序中被打開,與外部進行通訊,以下為常用的串口操作函數(shù)。
*串口的打開:open,
如open#8,“com1”
*串口的關(guān)閉:close
如close#8
*串口通訊參數(shù)的設定:ioctl,
(2)ioctl_string格式為:
baud(波特率),parity(校驗),databits(數(shù)據(jù)位),stopbits(停止位),flowctl(流控制方式),physical(物理協(xié)議如232/485/422),duplexmode(通訊模式,半雙工/全雙工)如ioctl#8,“19200,n,8,1,n,232”
(3)從串口讀取數(shù)據(jù):inchr$(,,,,)
如restr=inchr$(ch%,10,“”,0,timeout%)
(4)向串口發(fā)送數(shù)據(jù):print,
如print#8,“helloworld”
(5)megabasic程序?qū)lc寄存器的訪問:
對于pcm模塊所在的plc系統(tǒng)中的寄存器如%i,%q,%r,%m等,basic程序中并不可直接引用,而需通過使用特定的功能指令來訪問它們。
a)訪問plc寄存器之前,先要使用syslink指令。
syslink,,[type]
local_name:basic程序內(nèi)部定義的變量
cpu_symbol:plc的寄存器名,外加雙引號(如“%r500”)
type:關(guān)聯(lián)數(shù)據(jù)的類型,如bool,byte,int16,uint,dint等
b)讀、寫plc寄存器
sysread
syswrite
在syslink指令執(zhí)行后,即可使用上面兩個指令分別讀、寫basic變量所關(guān)聯(lián)的plc寄存器。
2.4系統(tǒng)編程過程簡介
根據(jù)minitii通訊協(xié)議及megabasic語言的基本語法,在文本編輯器(如記事本)中寫好大致的程序,特別是對返回數(shù)據(jù)的解析編寫專門的函數(shù)來進行處理,以得到浮點數(shù)形式的電壓、電流、功率等數(shù)據(jù),其中重點要注意好對返回錯誤幀時的處理,還有采集不同數(shù)據(jù)時的協(xié)議上的差別,這一部分程序?qū)懞煤螅胮cm模塊的com1通過logicmaster軟件導入pcm模塊,用com1監(jiān)視運行,用com2通訊,進行聯(lián)機調(diào)試,根據(jù)調(diào)試情況加以修正完善,得到終版本。
類似上述步驟,根據(jù)fx2n的通訊協(xié)議,寫好與fx2n通訊的程序,用com1監(jiān)視運行,用com2通訊,經(jīng)調(diào)試修正,得到終版本。
將兩個版本的程序合并,并將與fx2n通訊的端口改為com1,去掉程序中用于監(jiān)視運行的輸出語句(print),再重新導入pcm模塊中,一個滿足系統(tǒng)要求的完整的通訊程序就這樣就寫成了。
3、結(jié)束語
用類似本系統(tǒng)中的pcm模塊完成通訊任務,筆者認為其相對利用plc梯形圖程序進行通訊優(yōu)點很明顯。首先由于其使用的是與微機系統(tǒng)中的basic語言語法相同的高級語言,易學易懂,處理復雜的數(shù)據(jù)運算時得心應手,在復雜的有大量通訊任務的系統(tǒng)中有很重大的推廣價值;再者在系統(tǒng)調(diào)試時也有明顯優(yōu)勢,一個端口正在通訊時,一個端口實時監(jiān)視程序的運行情況,并可以自然語言的形式輸出實時的調(diào)試信息,plc程序就不會有這么好的效果,那么結(jié)果是這種系統(tǒng)的開發(fā)周期必然大為縮短。
plc系統(tǒng)中采用basic語言的協(xié)處理器,筆者認為這是plc應用中一個新的發(fā)展,對簡化編程,減輕工控系統(tǒng)*的開發(fā)壓力可起到較大的作用,據(jù)了解,很多plc廠商都有類似功能的模塊生產(chǎn),如三菱公司就推出了ad51h高速智能通信組件,使用ad51hbasic語言,支持四個通信口,具備384k內(nèi)存,大大提高了plc系統(tǒng)數(shù)據(jù)通信與收集方面的靈活性。
1.4 S7-200 CPU及模塊參數(shù)
在樣本或手冊中都列有 CPU和各個模塊的詳細參數(shù),這些參數(shù)對于我們使用和選型至關(guān)重要。
1.4.1 CPU參數(shù)
表 1.1列出了 CPU部分參數(shù),其中一些關(guān)鍵參數(shù)詳述如下:
? 程序存儲器:是一個 ROM存儲區(qū),程序下載到 CPU內(nèi)掉電不會丟失。當我們編寫好程序編譯通過后,程序的大小會在軟件輸出信息里顯示,如圖 1-16,實際程序的大小不能超過 CPU此參數(shù)。一般情況下,當我們下載程序時,CPU需要停機,但在某些場合是不允許 CPU停機
的,要實現(xiàn)這個功能需要占用一定的程序存儲器空間,所以此參數(shù)有兩個數(shù)值,當我們使能了“可在運行模式下編輯”功能,會犧牲一些程序存儲器空間。
? 數(shù)據(jù)存儲區(qū):是一個 RAM存儲區(qū),掉電后易丟失。指的是 CPU內(nèi)部的 V存儲區(qū)的大小。
? 掉電保持時間:對于存放在 RAM存儲區(qū)的數(shù)據(jù),掉電后是靠 CPU內(nèi)部一個超級電容保持數(shù)據(jù)。此參數(shù)指明了該電容能保持數(shù)據(jù)的時間長度。
? 本機 I/O:CPU本體上集成的輸入/輸出點數(shù)。特別地,只有 CPU224XP有集成的模擬量輸入/輸出點,其他只有數(shù)字量輸入/輸出點。
? 擴展模塊數(shù)量:模塊的擴展不是無限制擴展的,CPU221不能擴展模塊,CPU222只能擴展 2個模塊,其他型號 CPU多能擴展 7個模塊。對于模塊的擴展數(shù)量,除了這個參數(shù)的限制以外,特別注意還要計算CPU的供電能力。表 1.5列出了各型號 CPU的供電能力。CPU每帶一
個擴展模塊,擴展模塊都要消耗一些 CPU的供電。CPU的電源有兩種,一種是 5VDC,是 CPU與擴展模塊通訊用的電源,不能外加;另一種是 24VDC,是普通的 24VDC電源,可以外加一個開關(guān)電源代替。所以,在計算時,主要考慮 CPU的 5VDC電流供應能力即可。各個模塊的電流消耗可在模塊參數(shù)表內(nèi)查到。比如,32輸入/32輸出的 EM223模塊,消耗 5VDC電流 240mA,如果 7個這樣的模塊就要消耗 240 * 7 = 1680mA電流,即使是 CPU226也不能擴展 7個這樣的模塊。表 1.6 – 表 1.9列出了各個擴展模塊的電流需求。
西門子PLC 6ES7 153-2BA02-0XB0 西門子PLC 6ES7 153-2BA02-0XB0