999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Modbus及Canopen總線在步行式艉部作業(yè)平臺(tái)上的應(yīng)用

2015-05-08 08:14:38方立國(guó)張劍鋒吳吉偉
造船技術(shù) 2015年2期
關(guān)鍵詞:作業(yè)

方立國(guó), 顧 婷, 張劍鋒, 吳吉偉

(1.上海船舶工藝研究所, 上海 200032; 2.昆山日門建筑裝飾有限公司, 上海 200000)

Modbus及Canopen總線在步行式艉部作業(yè)平臺(tái)上的應(yīng)用

方立國(guó)1, 顧 婷2, 張劍鋒1, 吳吉偉1

(1.上海船舶工藝研究所, 上海 200032; 2.昆山日門建筑裝飾有限公司, 上海 200000)

步行式艉部作業(yè)平臺(tái)可以不借助導(dǎo)軌,自行在船塢或船臺(tái)上任意行走。通過分析步行式艉部作業(yè)平臺(tái)的行走原理,給出了采用現(xiàn)場(chǎng)總線技術(shù)的系統(tǒng)組成方案,進(jìn)而介紹了Modbus及Canopen現(xiàn)場(chǎng)總線的原理,并詳細(xì)闡述了這兩種現(xiàn)場(chǎng)總線在步行式艉部作業(yè)平臺(tái)中的應(yīng)用。

ModbusCanopen艉部作業(yè)平臺(tái)

1 引言

圖1 步行式艉部作業(yè)平臺(tái)

艉部作業(yè)平臺(tái)是安裝船舶槳、舵等艉部部件的工裝設(shè)備。傳統(tǒng)的艉部作業(yè)平臺(tái)采用滾輪加導(dǎo)軌的行走方式,其行走方向由鋪在地上的導(dǎo)軌決定,在槳、舵安裝過程中,需要多次布置導(dǎo)軌。步行式艉部作業(yè)平臺(tái)(見圖1)采用獨(dú)特的步行行走方式,不用借助導(dǎo)軌,既可以向任意方向直行,也可以360°任意轉(zhuǎn)向。步行式艉部作業(yè)平臺(tái)通過1個(gè)主控制單元和4個(gè)獨(dú)立的從控制單元對(duì)各種動(dòng)作進(jìn)行控制,主、從控制單元間通過Modbus-TCP進(jìn)行數(shù)據(jù)和命令的交換,各從控制單元通過Canopen總線對(duì)伺服驅(qū)動(dòng)器進(jìn)行控制,同時(shí)又通過Modbus-RTU總線對(duì)變頻器進(jìn)行控制。現(xiàn)場(chǎng)總線的使用,使步行式艉部作業(yè)平臺(tái)控制系統(tǒng)的組成既精簡(jiǎn)直觀又穩(wěn)定可靠,不僅方便維護(hù)且便于擴(kuò)展。

2 步行式艉部作業(yè)平臺(tái)

2.1 步行原理

步行式艉部作業(yè)平臺(tái)的主承載平臺(tái)由分布在主承載平臺(tái)4個(gè)角上的4個(gè)主支撐油缸支撐,每個(gè)主支撐油缸下方都安裝了一個(gè)行走腳,4個(gè)行走腳每同步平移一步,主承載平臺(tái)也就跟著走了一步,通過這樣一步接一步地行走,步行式艉部作業(yè)平臺(tái)就實(shí)現(xiàn)了長(zhǎng)距離行走。每個(gè)行走腳又由平移單元、升降單元和旋轉(zhuǎn)單元3部分組成。當(dāng)平移單元帶著主支撐油缸前移一步后,行走腳自身也要跟著前移一步,以復(fù)位平移單元的推動(dòng)油缸,然后再進(jìn)行下一步的行走動(dòng)作。主支撐油缸和行走腳之間的平移動(dòng)作切換,通過升降單元實(shí)現(xiàn),此過程我們稱為“換步”。“換步”過程中主支撐油缸與行走腳升降單元同步調(diào)整,以實(shí)現(xiàn)主承載平臺(tái)的高度在行走過程中始終保持恒定。當(dāng)4個(gè)行走腳平行且平移方向相同時(shí),主承載平臺(tái)做平移動(dòng)作,通過旋轉(zhuǎn)單元改變各行走腳的角度,并相應(yīng)地調(diào)整各行走腳的平移方向,主承載平臺(tái)隨即完成轉(zhuǎn)向動(dòng)作。

主承載平臺(tái)通過平移動(dòng)作和轉(zhuǎn)向動(dòng)作的組合,能夠?qū)崿F(xiàn)各種位置移動(dòng),滿足槳、舵等艉部部件安裝作業(yè)的要求。

2.2 控制系統(tǒng)組成

根據(jù)2.1節(jié)中步行原理可知,步行行走過程中既涉及大量的油缸同步控制,又涉及很多精確的角度旋轉(zhuǎn)控制。通過任務(wù)分解,我們將控制系統(tǒng)分為1個(gè)主控制單元和4 個(gè)獨(dú)立的從控制單元,主控制單元負(fù)責(zé)整臺(tái)機(jī)器的總體控制,各從控制單元分別負(fù)責(zé)控制一個(gè)行走腳以及這個(gè)行走腳上的主支撐油缸和其他功能油缸的動(dòng)作。步行式艉部作業(yè)平臺(tái)的控制系統(tǒng)組成如圖2所示。

圖2 控制系統(tǒng)組成

主控制單元通過100 Mbps的Modbus-TCP,獲取4個(gè)從控制單元的各種位置、角度、壓力、報(bào)警等狀態(tài)信息,同時(shí)又發(fā)送各種控制命令給各從控制單元,主控制單元實(shí)現(xiàn)Modbus-TCP客戶機(jī),并通過本機(jī)I/O端口和顯示器實(shí)現(xiàn)機(jī)器與操作人員的人機(jī)對(duì)話。

從控制單元作為下位機(jī),實(shí)現(xiàn)Modbus-TCP服務(wù)器,采集各位置傳感器、壓力傳感器的過程數(shù)據(jù)和各限位、報(bào)警等點(diǎn)位輸入信息,并直接控制相關(guān)油路電磁閥的動(dòng)作。我們通過變頻調(diào)速來調(diào)節(jié)柱塞式油泵的供油速度,以實(shí)現(xiàn)對(duì)各油缸推、拉速度的閉環(huán)控制,通過采用伺服電機(jī)驅(qū)動(dòng)行走腳旋轉(zhuǎn)單元,以實(shí)現(xiàn)對(duì)旋轉(zhuǎn)角度的精確控制。從控制單元通過Modbus-RTU對(duì)變頻器進(jìn)行控制,通過Canopen總線對(duì)伺服驅(qū)動(dòng)器進(jìn)行控制。

3 Modbus

Modbus是由Modicon公司于1979年發(fā)明的,其現(xiàn)已被廣泛應(yīng)用于工業(yè)控制領(lǐng)域,并已成為我國(guó)國(guó)家標(biāo)準(zhǔn)GB/T19582-2008。Modbus支持RS-232、RS-422、RS-485和以太網(wǎng)設(shè)備,許多工業(yè)設(shè)備,包括PLC,DSC,智能儀表等都在使用Modbus協(xié)議作為他們之間的通訊標(biāo)準(zhǔn)。

3.1 Modbus協(xié)議

Modbus使用主(客戶機(jī))-從(服務(wù)器)通訊模式,定義了一個(gè)與物理層無關(guān)的簡(jiǎn)單協(xié)議數(shù)據(jù)單元(PDU)。特定總線或網(wǎng)絡(luò)上的Modbus協(xié)議映射能夠在應(yīng)用數(shù)據(jù)單元(ADU)上引入一些附加域,如圖3所示。

圖3 Modbus協(xié)議數(shù)據(jù)組成

地址域?yàn)閺恼镜刂罚W(wǎng)絡(luò)中每個(gè)從站必須有一個(gè)唯一的尋址地址(站號(hào)),從1~247,0號(hào)地址是廣播地址,主站沒有地址。功能碼和數(shù)據(jù)組成了Modbus的協(xié)議數(shù)據(jù)單元(PDU),應(yīng)用數(shù)據(jù)單元(ADU)的最后是兩個(gè)字節(jié)的差錯(cuò)校驗(yàn)碼。

對(duì)于正常通訊,從站響應(yīng)主站時(shí),復(fù)制主站功能碼,表示無差錯(cuò)響應(yīng),并返回主站請(qǐng)求的數(shù)據(jù)。如果檢測(cè)到異常,從站將主站功能碼加128形成與功能碼相對(duì)應(yīng)的差錯(cuò)碼,表示這是一個(gè)異常響應(yīng),異常響應(yīng)時(shí),響應(yīng)數(shù)是對(duì)應(yīng)檢測(cè)到的異常情況的異常碼,其通訊模型如圖4所示。

圖4 Modbus通訊模型

Modbus主站通過不同的功能碼,可以按位也可以按字訪問從站的各種寄存器,Modbus設(shè)備常用功能碼如表1所示。

通過主站對(duì)從站問詢、從站對(duì)主站應(yīng)答的過程,主從站之間完成數(shù)據(jù)的傳輸。Modbus協(xié)議定義了兩種串行鏈路的傳輸模式:RTU模式和ASCII模式。而RTU模式的速度更快捷,使用也更廣泛,我們著重介紹RTU模式。

3.2 Modbus-RTU

在RTU(Remote Terminal Unit)模式中,Modbus 報(bào)文中每個(gè)8位字節(jié)含有兩個(gè)4位十六進(jìn)制字符。每個(gè)字節(jié)(11位)的格式為:

1起始位;

8數(shù)據(jù)位, 首先發(fā)送最低有效位;

1奇偶校驗(yàn)位;

1停止位;

也可以不用奇偶校驗(yàn),無校驗(yàn)時(shí)要求2個(gè)停止位。RTU模式的報(bào)文幀格式如圖5所示。

表1 Modbus常用功能碼

圖5 Modbus-RTU報(bào)文幀

在RTU模式,報(bào)文幀由時(shí)長(zhǎng)至少為3.5個(gè)字符時(shí)間的總線空閑間隔區(qū)分,整個(gè)報(bào)文幀必須以連續(xù)的字符流發(fā)送,當(dāng)有連續(xù)3.5個(gè)以上字符的總線空閑出現(xiàn)時(shí),網(wǎng)絡(luò)認(rèn)為一個(gè)RTU報(bào)文幀傳送完成。RTU報(bào)文幀使用循環(huán)冗余校驗(yàn)(Cyclical Redundancy Checking,簡(jiǎn)稱CRC)的算法進(jìn)行錯(cuò)誤檢驗(yàn),CRC 域檢驗(yàn)整個(gè)報(bào)文的內(nèi)容,不管報(bào)文有無奇偶校驗(yàn),均執(zhí)行此檢驗(yàn)。對(duì)循環(huán)冗余校驗(yàn)(CRC)的詳細(xì)算法,本文不做贅述。

3.3 Modbus-TCP

Modbus-TCP是Modbus協(xié)議在以太網(wǎng)上的實(shí)現(xiàn)。IANA(Internet Assigned Numbers Authority,互聯(lián)網(wǎng)編號(hào)分配管理機(jī)構(gòu))給Modbus協(xié)議賦予的TCP編口號(hào)為502,這是目前工業(yè)自動(dòng)化領(lǐng)域中唯一分配到的端口號(hào)。Modbus-TCP將Modbus協(xié)議數(shù)據(jù)單元(PDU)打包在TCP數(shù)據(jù)包中,其數(shù)據(jù)幀如圖6所示。

圖6 Modbus-TCP報(bào)文數(shù)據(jù)

Modbus-TCP的協(xié)議數(shù)據(jù)單元(PDU)與Modbus-RTU的協(xié)議數(shù)據(jù)單元(PDU)格式、內(nèi)容完全相同,但是在Modbus-TCP的應(yīng)用數(shù)據(jù)單元(ADU)中,多了MBAP報(bào)文頭,少了差錯(cuò)校驗(yàn)域,Modbus-RTU與Modbus-TCP的幀結(jié)構(gòu)對(duì)比如圖7所示。

圖7 Modbus-TCP報(bào)文格式

傳輸協(xié)議(TCP)面向連接,基于TCP的Modbus報(bào)文已無需在應(yīng)用數(shù)據(jù)單元(ADU)中再次進(jìn)行循環(huán)冗余校驗(yàn)(CRC)。而MBAP報(bào)文頭則有如下格式:

事務(wù)處理標(biāo)識(shí)符:標(biāo)志某個(gè)Modbus詢問/應(yīng)答的傳輸,由客戶機(jī)生成,服務(wù)器應(yīng)答時(shí),復(fù)制該值。

協(xié)議標(biāo)識(shí)符:0=Modbus協(xié)議,1=UNI-TE協(xié)議,由客戶機(jī)生成,服務(wù)器應(yīng)答時(shí),復(fù)制該值。

長(zhǎng)度:后續(xù)字節(jié)的計(jì)數(shù),主站側(cè)由客戶機(jī)生成,服務(wù)器應(yīng)答時(shí),重新計(jì)算該值。

單元標(biāo)識(shí)符:串行鏈路或其他總線上連接的遠(yuǎn)程從站的識(shí)別碼,由客戶機(jī)生成,服務(wù)器應(yīng)答時(shí),復(fù)制該值。

4 Canopen

Canopen是基于CAN總線的一個(gè)應(yīng)用層協(xié)議,廣泛應(yīng)用于工業(yè)控制領(lǐng)域。

4.1 CAN總線

CAN (Controller Area Network)是二十世紀(jì)80年代初德國(guó)Bosch公司為解決現(xiàn)代汽車中眾多電控單元(ECU)之間的數(shù)據(jù)交換而開發(fā)的一種串行通信協(xié)議,目前最新的CAN總線規(guī)范是CAN2.0B。CAN總線是多主站總線系統(tǒng),總線報(bào)文具有基于幀標(biāo)識(shí)符的優(yōu)先級(jí),通過改進(jìn)帶有檢測(cè)沖突的載波偵聽多路存取(CSMA/CD)機(jī)制,總線沖突通過非破壞性位序列仲裁的方法進(jìn)行解決。

CAN總線使用“顯性”和“隱性”兩個(gè)互補(bǔ)的邏輯值來表示“0”和“1”,當(dāng)總線上同時(shí)發(fā)送“顯性”和“隱性”時(shí),總線的邏輯值為“顯性”,如圖8所示。CAN總線收發(fā)器通過CAN_H和CAN_L兩個(gè)差分雙絞線傳輸物理電平。

圖8 CAN總線電平

CAN總線空閑時(shí),CAN_H和CAN_L兩線上的電平都維持在大約2.5 V,總線顯示隱性,當(dāng)有CAN_H線高出CAN_L線2 V以上的差分電壓時(shí),總線狀態(tài)顯示顯性。標(biāo)準(zhǔn)的CAN總線報(bào)文幀結(jié)構(gòu)如圖9所示。

SOF:幀起始位,標(biāo)志一個(gè)CAN報(bào)文的開始。

Identifier:幀標(biāo)識(shí)符,報(bào)文優(yōu)先級(jí)由幀標(biāo)識(shí)符決定,數(shù)字越小,優(yōu)先級(jí)越高。

RTR:遠(yuǎn)程傳輸請(qǐng)求位,1代表遠(yuǎn)程幀,0代表數(shù)據(jù)幀。

IDE:標(biāo)識(shí)符擴(kuò)展位,0代表標(biāo)準(zhǔn)CAN報(bào)文,1代表擴(kuò)展CAN報(bào)文。如果IDE=1,Identifier由29位組成,其低18位緊跟在IDE位后面。

r:保留位。

DLC:指示數(shù)據(jù)長(zhǎng)度。

Data Field:CAN報(bào)文的數(shù)據(jù)。

Checksum:循環(huán)冗余校驗(yàn)碼(CRC)。

DEL:校驗(yàn)域分隔符,是1個(gè)隱性位。

ACK:應(yīng)答間隙,發(fā)送節(jié)點(diǎn)發(fā)送1,接收節(jié)點(diǎn)發(fā)送0。

DEL:應(yīng)答域分隔符,是1個(gè)隱性位。

EOF:幀結(jié)束域,是連續(xù)7個(gè)隱性位。

ITM:幀間空間。

CAN總線通過非破壞性位序列仲裁的方法解決總線沖突,當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)報(bào)文時(shí),優(yōu)先級(jí)最高的報(bào)文會(huì)最終被發(fā)送,總線一有空閑,未發(fā)送的報(bào)文立即啟動(dòng)。這種沖突解決機(jī)制,既提高了總線的利用效率,又增加了總線吞吐能力。

4.2 Canopen協(xié)議

CAN總線僅僅定義了ISO11898標(biāo)準(zhǔn)的物理層和數(shù)據(jù)鏈路層,沒有規(guī)定應(yīng)用層,本身并不完整,需要一個(gè)高層協(xié)議來定義CAN報(bào)文中的11/29位標(biāo)識(shí)符及8字節(jié)數(shù)據(jù)的使用。Canopen作為CAN總線的一種應(yīng)用層協(xié)議,是CAN-in-Automation(CiA)組織定義的標(biāo)準(zhǔn)之一,在工業(yè)控制系統(tǒng)中有著廣泛的應(yīng)用。Canopen協(xié)議將CAN報(bào)文的11位標(biāo)識(shí)符(擴(kuò)展幀為29位標(biāo)識(shí)符的高11位)分成兩部分,如圖10所示。

圖10 COB-ID

Node-ID取值1~127,表示Canopen網(wǎng)絡(luò)中的節(jié)點(diǎn)地址,也就表示Canopen網(wǎng)絡(luò)的最大容量是127臺(tái)設(shè)備,地址0是廣播地址,節(jié)點(diǎn)不能使用。Function Code(功能碼)在Canopen協(xié)議中,決定著報(bào)文的優(yōu)先級(jí)。

Canopen的核心概念是設(shè)備對(duì)象字典(OD:Object Dictionary),對(duì)象字典是一個(gè)有序的對(duì)象組,每個(gè)對(duì)象采用一個(gè)16位的索引和一個(gè)8位的子索引來尋址。Canopen網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都有一個(gè)對(duì)象字典,對(duì)象字典中包含了描述這個(gè)設(shè)備和它的網(wǎng)絡(luò)行為的所有參數(shù)。一個(gè)節(jié)點(diǎn)的對(duì)象字典由這個(gè)節(jié)點(diǎn)的電子數(shù)據(jù)文檔(EDS:Electronic Data Sheet)描述。

Canopen通訊模型定義了4種報(bào)文(通訊對(duì)象):

(1) 管理報(bào)文。

主要負(fù)責(zé)初始化,配置和網(wǎng)絡(luò)管理,這些服務(wù)都是基于主從通訊模式:在CAN網(wǎng)絡(luò)中,只能有一個(gè)管理報(bào)文的主節(jié)點(diǎn)以及一個(gè)或多個(gè)從節(jié)點(diǎn)。

(2) 服務(wù)數(shù)據(jù)對(duì)象SDO(Service Data Object)。

通過使用索引和子索引,SDO主節(jié)點(diǎn)能夠訪問從節(jié)點(diǎn)對(duì)象字典中的對(duì)象,SDO主節(jié)點(diǎn)發(fā)起請(qǐng)求,從節(jié)點(diǎn)進(jìn)行應(yīng)答。

(3) 過程數(shù)據(jù)對(duì)象PDO(Process Data Object)。

數(shù)據(jù)從一個(gè)生產(chǎn)者傳到一個(gè)或多個(gè)消費(fèi)者,數(shù)據(jù)長(zhǎng)度限制在1~8個(gè)字節(jié)。PDO數(shù)據(jù)既可以同步傳輸,又可以異步傳輸,不需要任何節(jié)點(diǎn)應(yīng)答,有很好的實(shí)時(shí)性,多用來傳送實(shí)時(shí)數(shù)據(jù)。

(4) 預(yù)定義報(bào)文或者特殊功能對(duì)象。

Canopen協(xié)議預(yù)定義:同步(SYNC)、時(shí)間標(biāo)記(Time Stamp)、緊急事件(Emergency)、節(jié)點(diǎn)/壽命保護(hù)(Node/Life guarding)和Boot-UP對(duì)象。

通過Canopen協(xié)議,不同廠商的各類設(shè)備都可以經(jīng)由CAN總線互連在一起,Canopen主節(jié)點(diǎn)通過從節(jié)點(diǎn)的電子數(shù)據(jù)文檔,可以便捷地對(duì)從節(jié)點(diǎn)進(jìn)行配置和訪問。

5 Modbus和Canopen在步行式艉部作業(yè)平臺(tái)上應(yīng)用

步行式艉部作業(yè)平臺(tái)的主控制單元(上位機(jī))采用研華PCM-3363嵌入式工業(yè)控制計(jì)算機(jī),以c/c++語言進(jìn)行編程,既可以完成復(fù)雜地計(jì)算,又可以進(jìn)行靈活地控制,還可以方便地對(duì)下位機(jī)進(jìn)行組態(tài)和編程。下位機(jī)采用施耐德TM258型PLC做為控制器,PLC在工業(yè)現(xiàn)場(chǎng)環(huán)境下有較好的穩(wěn)定性和可靠性,TM258集成了Modbus-TCP/RTU接口、Canopen接口、各種傳感器接口和可靈活擴(kuò)展的I/O,既方便使用又節(jié)約成本。

5.1 上位機(jī)的通訊實(shí)現(xiàn)

TCP/IP使用帶有檢測(cè)沖突的載波偵聽多路存取(CSMA/CD)機(jī)制規(guī)避沖突,網(wǎng)絡(luò)工作是半雙工模式,報(bào)文的延遲也不可預(yù)測(cè)。為提高網(wǎng)絡(luò)通訊的實(shí)時(shí)性,我們?cè)谥骺刂茊卧渲靡粋€(gè)交換機(jī)(switch hub),以全雙工的方式進(jìn)行網(wǎng)絡(luò)詢問。

上位機(jī)上電后初始化完畢,專門創(chuàng)建一個(gè)通訊任務(wù)。通訊任務(wù)對(duì)下位機(jī)建立TCP連接后,循環(huán)獲取控制任務(wù)產(chǎn)生的通訊命令,對(duì)下位機(jī)進(jìn)行訪問。本項(xiàng)目中所有Modbus-TCP訪問都是基于16位比特的,通訊數(shù)據(jù)類型定義如下:

typedef struct{

struck_MBAP mbap; //報(bào)文頭

uint8_t function_code; //功能碼

uint16_t start_read_address; //讀寄存器起始地址

uint16_t start_write_address; //寫寄存器起始地址

uint16_t read_register_count; //讀寄存器數(shù)量

uint16_t write_register_count; //寫寄存器數(shù)量

uint16_t send_data[MAX_SEND_REGISTERS]; //數(shù)據(jù)發(fā)送緩沖區(qū)

uint16_t receive_data[MAX_RECEIVE_REGISTERS]; //數(shù)據(jù)接收緩沖區(qū)

}MB_tcp_command;

為簡(jiǎn)化程序設(shè)計(jì),我們采用boost.asio庫進(jìn)行網(wǎng)絡(luò)訪問,同時(shí)加入響應(yīng)超時(shí)處理,在超時(shí)回調(diào)函數(shù)和套接字異步數(shù)據(jù)接收的回調(diào)函數(shù)中,進(jìn)行必要的錯(cuò)誤處理。通訊任務(wù)的協(xié)議實(shí)現(xiàn)代碼如下:

communication_init(); //通訊相初始化

……

io_service io_serv; //構(gòu)建asio對(duì)象

ip::tcp::socket sock(io_serv); //構(gòu)建套接字對(duì)象

deadline_timer timer(io_serv); //構(gòu)建超時(shí)定時(shí)器對(duì)象

ip::tcp::endpoint endp(slave_ID,502); //遠(yuǎn)程地址,監(jiān)聽502端口

sock.connect(endp); //建立TCP連接

……

while(true){ //進(jìn)入任務(wù)循環(huán)

……

io_serv.reset(); //對(duì)象復(fù)位

get_command_data(m_command); //獲取控制任務(wù)的通訊命令

get_t_data(m_command,t_data); //將通訊命令轉(zhuǎn)為Modbus-TCP幀

sock.write_some(buffer(t_data,t_size)); //發(fā)送請(qǐng)求

timer.expires_from_now(boost::posix_time::microsec(timeout)); //啟用超時(shí)定時(shí)器

timer.async_wait(boost::bind (&hander_timeout, _1)); //異步等待

sock.async_read_some(buffer(r_data,r_size),boost::bind(handle_read, _1, _2)); //異步接收響應(yīng)數(shù)據(jù)

iosev.run(); //啟動(dòng)異步操作

get_r_data(r_data); //校驗(yàn)接收到數(shù)據(jù)的有效性

set_command_data(r_data,m_command,); //將收到的響應(yīng)數(shù)據(jù)發(fā)還給控制任務(wù)

……

}

5.2 下位機(jī)組態(tài)

下位機(jī)首先要在PLC的編程軟件SoMachine中,對(duì)系統(tǒng)配置進(jìn)行組態(tài)。SoMachine中集成了對(duì)LM23A型伺服系統(tǒng)進(jìn)行控制的功能塊,為簡(jiǎn)化PLC的程序設(shè)計(jì),我們直接采用了LM23A型伺服系統(tǒng)。PLC配置如圖11所示。

作為Modbus-TCP服務(wù)器,TM258型PLC不需要做任何配置,也不用編寫全任何通訊程序,只要以太網(wǎng)IP地址設(shè)置好,直接使用參與通迅的寄存器就可以了。通過Modbus-RTU對(duì)變頻器控制時(shí),PLC和變頻器的串口參數(shù)要確保一致,PLC配置好Modbus-RTU主站后,在調(diào)用PLC通訊功能塊時(shí),需要將讀寫寄存器的地址對(duì)應(yīng)到變頻器中相關(guān)速度、加速度等控制參數(shù)和扭矩、電流等狀態(tài)參數(shù)的地址上。通過Canopen對(duì)伺服驅(qū)動(dòng)控制時(shí),直接調(diào)用PLC提供的伺服控制功能塊就可以了。

圖11 SoMochine配置

5.3 PLC通訊程序編寫

Modbus-RTU的通訊,是通過調(diào)用PLC的相關(guān)功能塊來完成,主要使用的功能塊有:ADDM(將字符串轉(zhuǎn)換為地址)、READ_VAR(讀數(shù)據(jù))、WRITE_VAR(寫數(shù)據(jù))和WRITE_READ_VAR(讀寫數(shù)據(jù))這4個(gè)。以結(jié)構(gòu)化文本(ST語言)調(diào)用WRITE_READ_VAR功能塊的程序如下:變量定義:

PROGRAM Modbus_fun23

VAR

transducer_add: ADDRESS; // 變頻器地址變量

get_add:ADDM; // 將字符串轉(zhuǎn)化成功能塊可用的地址變量

fun_23: WRITE_READ_VAR; //將讀寫功能塊作為功能碼23進(jìn)行調(diào)用

temp:BOOL; //臨時(shí)變量

END_VAR

程序代碼:

get_add(

Execute:= NOT start, //啟動(dòng)功能塊,變量start在第1次掃描后置1

Addr:= '1.1', //變頻器地址,在串口1上,站地址為1

AddrTable:= transducer_add, //生成地址變量

Done=> temp, //地址轉(zhuǎn)換完成

);

fun_23(

Execute:= temp, //啟動(dòng)通訊

Addr:= transducer_add, //通訊目的地址

Timeout:= 5, //設(shè)置超時(shí)為0.5 s

ObjType:= Objecttype.MW, //操作保持寄存器

FirstWriteObj:= start_add_of_write_parameter , //寫命令參數(shù)的起始地址

WriteQuantity:= count_of_write_parameter, //寫命令參數(shù)的數(shù)量

WriteBuffer:= ADD(send_data), //寫命令參數(shù)的具體數(shù)據(jù)

FirstReadObj:= start_add_of_write_parameter, //讀狀態(tài)參數(shù)的起始地址

ReadQuantity:= count_of_write_parameter, //讀狀態(tài)參數(shù)的數(shù)量

ReadBuffer:= ADD(receive_data), //將變頻器狀態(tài)參數(shù)保存

Busy=> start, //用于循環(huán)啟動(dòng)通訊傳輸

);

通過Canopen對(duì)伺服的控制更簡(jiǎn)單,我們不用專門編寫對(duì)伺服對(duì)象字典的控制程序,PLC為我們提供了豐富的已經(jīng)打包好的集通訊與控制于一體的功能塊。我們對(duì)伺服進(jìn)行絕對(duì)位置定位的結(jié)構(gòu)化文本(ST語言)程序如下:

變量定義:

PROGRAM servo_ctrl

VAR

abs_move: MC_MoveAbsolute_LXM23; //絕對(duì)位置定位功能塊

ok:BOOL; //定位完成

END_VAR

程序代碼:

abs_move(

Execute:=go, //執(zhí)行移動(dòng),上升沿啟動(dòng)

Position:=aim_position, //設(shè)定目標(biāo)位置,以編碼器脈沖表示

Velocity:= move_velocity, //設(shè)置電機(jī)轉(zhuǎn)動(dòng)速度

Axis:= servo , //指定要移動(dòng)的電機(jī)

Done=> ok, //移動(dòng)完成標(biāo)志

);

6 結(jié)束語

Modbus在工業(yè)上的應(yīng)用歷史悠久,使用簡(jiǎn)單,性能可靠,價(jià)格低廉,如今已廣泛應(yīng)用于工業(yè)控制的角角落落,而Canopen一經(jīng)推出,便得到了廣泛應(yīng)用,尤其在歐洲,使用已經(jīng)非常普便,因其時(shí)實(shí)性突出,如今已成為許多伺服驅(qū)動(dòng)器的標(biāo)準(zhǔn)配置。通過現(xiàn)場(chǎng)總線的使用,我們可以方便地簡(jiǎn)化控制系統(tǒng)的組成,減少大量的現(xiàn)場(chǎng)配線,既增強(qiáng)系統(tǒng)的穩(wěn)定性,又節(jié)約成本。此外,現(xiàn)場(chǎng)總線具有良好的擴(kuò)展特性,每一個(gè)總線線路上,都可以方便地增加新的設(shè)備,也可以方便地更換故障設(shè)備,既便于系統(tǒng)擴(kuò)展,也便于系統(tǒng)維護(hù)。通過上位機(jī)中安裝SSH服務(wù)器,我們還可以安全地通過網(wǎng)絡(luò)對(duì)控制系統(tǒng)進(jìn)行在線監(jiān)控、調(diào)試和升級(jí)。實(shí)踐證明,Modbus和Canopen總線,適合在步行式艉部作業(yè)平臺(tái)上應(yīng)用,也為步行式艉部作業(yè)平臺(tái)的進(jìn)一步改進(jìn)和升級(jí)創(chuàng)造了很好的接口條件。

[1] GB/T19582-2008.基于Modbus協(xié)議的工業(yè)自動(dòng)化網(wǎng)絡(luò)規(guī)范[S].2008.

[2] CAN in Automation. CANopen Application Layer and CommunicationProfile. CiA Draft Standard 301 Version 4.02[S].2002.

[3] Boterenbrood H. CANopen high-level protocol for CAN-bus[S].NIKHEF Amsterdam,2000:3-8.

[4] 劉沛津,谷立臣,韓行等.基于Modbus/TCP的火電廠實(shí)時(shí)數(shù)據(jù)集成及網(wǎng)絡(luò)通信控制器研制[J].電力自動(dòng)化設(shè)備,2009,29(8):128-131.

[5] 趙飛.基于STM32的CANopen運(yùn)動(dòng)控制主從站開發(fā)[D].武漢:華中科技大學(xué),2011.

[6] 饒運(yùn)濤,鄒繼軍,鄭勇蕓.現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003.

[7] 羅劍峰.Boost程序庫完全開發(fā)指南:深入C++“準(zhǔn)”標(biāo)準(zhǔn)庫[M].北京:電子工業(yè)出版社,2010.

[8] Schneider electric.SoMachineModbus and ASCII Read/Write FunctionsPLCCommunication Library Guide[S].2014.

ApplicationofModbusandCanopenBusonWalkingSternWorkPlatform

FANGLi-guo1,GUTing2,ZHANGJian-feng1,WUJi-wei1

(1.ShanghaiShipbuildingTechnologyResearchInstitute,Shanghai200032,China; 2.KunshanNihonFlushCo.,Ltd.,Shanghai200000,China)

The walking stern work platform can move on dock or slipway without lead rail. According to the movement principle of the platform, the system composition scheme of field bus technology is provided, the principle of Modbus and Canopen bus are introduced, and the applications of the two field buses on walking stern work platform are deeply elaborated.

Modbus Canopen Stern work platform

方立國(guó)(1981-),男,高級(jí)工程師。

U

A

猜你喜歡
作業(yè)
作業(yè),我終于打敗你了!
讓人羨慕嫉妒恨的“作業(yè)人”
作業(yè)聯(lián)盟
我愿作業(yè)少一點(diǎn)
快來寫作業(yè)
一次特殊的作業(yè)
誰沒交作業(yè)
修改“作業(yè)”
跟一群抄作業(yè)的講垂直進(jìn)步?
能源(2016年2期)2016-12-01 05:10:46
作業(yè)
故事大王(2016年7期)2016-09-22 17:30:08
主站蜘蛛池模板: 婷婷六月综合网| 天天做天天爱夜夜爽毛片毛片| 欧美五月婷婷| 在线精品亚洲一区二区古装| 亚洲热线99精品视频| 日韩精品一区二区三区视频免费看| 在线毛片网站| 亚洲一区色| 国产麻豆福利av在线播放| 中国一级毛片免费观看| 2021天堂在线亚洲精品专区| 国产精品hd在线播放| 九色综合伊人久久富二代| 欧美日韩国产在线播放| 中文字幕无码制服中字| 特级毛片免费视频| 日韩精品亚洲精品第一页| 国产综合精品日本亚洲777| 国产区福利小视频在线观看尤物| 91精品国产91久久久久久三级| 国产区福利小视频在线观看尤物| 四虎综合网| 日韩不卡高清视频| 美女视频黄频a免费高清不卡| 狠狠干欧美| 成人在线观看不卡| 亚洲精品无码抽插日韩| 老熟妇喷水一区二区三区| 亚洲天堂网2014| 欧美成人二区| 国产91丝袜| 精品国产成人国产在线| 国产成人综合亚洲欧美在| 97无码免费人妻超级碰碰碰| 伊人精品视频免费在线| 国产噜噜噜视频在线观看| 色色中文字幕| 久久a级片| 国产亚洲欧美在线专区| 波多野结衣中文字幕一区二区| a级毛片免费播放| 免费A∨中文乱码专区| 精品五夜婷香蕉国产线看观看| 丁香亚洲综合五月天婷婷| 成年看免费观看视频拍拍| 玖玖精品在线| 亚洲一区毛片| 欧美国产视频| 国产美女丝袜高潮| 日本不卡在线播放| 伊人中文网| 亚洲成人一区二区| 中文字幕永久视频| 91娇喘视频| 不卡视频国产| 亚洲欧美日韩天堂| 日本免费福利视频| 国产日韩欧美在线播放| 国产在线第二页| 欧美色伊人| 国产高清自拍视频| 青青国产视频| 九月婷婷亚洲综合在线| 在线国产毛片| 亚洲国产精品一区二区第一页免 | 99re精彩视频| 日本高清免费不卡视频| 国产精品55夜色66夜色| 午夜毛片免费观看视频 | 久久综合色播五月男人的天堂| 久综合日韩| 国产一区二区三区在线观看视频 | 久久精品国产亚洲麻豆| 99爱在线| 二级特黄绝大片免费视频大片| 999精品色在线观看| 国产成人综合在线视频| 精品久久综合1区2区3区激情| 国产一级毛片高清完整视频版| 精品国产自| 任我操在线视频| 中文纯内无码H|