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