亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2015-05-08 08:14:38方立國張劍鋒吳吉偉
        造船技術(shù) 2015年2期
        關(guān)鍵詞:報(bào)文步行通訊

        方立國, 顧 婷, 張劍鋒, 吳吉偉

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

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

        方立國1, 顧 婷2, 張劍鋒1, 吳吉偉1

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

        步行式艉部作業(yè)平臺(tái)可以不借助導(dǎo)軌,自行在船塢或船臺(tái)上任意行走。通過分析步行式艉部作業(yè)平臺(tái)的行走原理,給出了采用現(xiàn)場總線技術(shù)的系統(tǒng)組成方案,進(jìn)而介紹了Modbus及Canopen現(xiàn)場總線的原理,并詳細(xì)闡述了這兩種現(xiàn)場總線在步行式艉部作業(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ú)立的從控制單元對各種動(dòng)作進(jìn)行控制,主、從控制單元間通過Modbus-TCP進(jìn)行數(shù)據(jù)和命令的交換,各從控制單元通過Canopen總線對伺服驅(qū)動(dòng)器進(jìn)行控制,同時(shí)又通過Modbus-RTU總線對變頻器進(jìn)行控制?,F(xiàn)場總線的使用,使步行式艉部作業(yè)平臺(tái)控制系統(tǒng)的組成既精簡直觀又穩(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)了長距離行走。每個(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ī)對話。

        從控制單元作為下位機(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)對各油缸推、拉速度的閉環(huán)控制,通過采用伺服電機(jī)驅(qū)動(dòng)行走腳旋轉(zhuǎn)單元,以實(shí)現(xiàn)對旋轉(zhuǎn)角度的精確控制。從控制單元通過Modbus-RTU對變頻器進(jìn)行控制,通過Canopen總線對伺服驅(qū)動(dòng)器進(jìn)行控制。

        3 Modbus

        Modbus是由Modicon公司于1979年發(fā)明的,其現(xiàn)已被廣泛應(yīng)用于工業(yè)控制領(lǐng)域,并已成為我國國家標(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)的簡單協(xié)議數(shù)據(jù)單元(PDU)。特定總線或網(wǎng)絡(luò)上的Modbus協(xié)議映射能夠在應(yīng)用數(shù)據(jù)單元(ADU)上引入一些附加域,如圖3所示。

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

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

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

        圖4 Modbus通訊模型

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

        通過主站對從站問詢、從站對主站應(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í)長至少為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,簡稱CRC)的算法進(jìn)行錯(cuò)誤檢驗(yàn),CRC 域檢驗(yàn)整個(gè)報(bào)文的內(nèi)容,不管報(bào)文有無奇偶校驗(yàn),均執(zhí)行此檢驗(yàn)。對循環(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)編號分配管理機(jī)構(gòu))給Modbus協(xié)議賦予的TCP編口號為502,這是目前工業(yè)自動(dòng)化領(lǐng)域中唯一分配到的端口號。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)對比如圖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)識符:標(biāo)志某個(gè)Modbus詢問/應(yīng)答的傳輸,由客戶機(jī)生成,服務(wù)器應(yīng)答時(shí),復(fù)制該值。

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

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

        單元標(biāo)識符:串行鏈路或其他總線上連接的遠(yuǎn)程從站的識別碼,由客戶機(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年代初德國Bosch公司為解決現(xiàn)代汽車中眾多電控單元(ECU)之間的數(shù)據(jù)交換而開發(fā)的一種串行通信協(xié)議,目前最新的CAN總線規(guī)范是CAN2.0B。CAN總線是多主站總線系統(tǒng),總線報(bào)文具有基于幀標(biāo)識符的優(yōu)先級,通過改進(jìn)帶有檢測沖突的載波偵聽多路存取(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)識符,報(bào)文優(yōu)先級由幀標(biāo)識符決定,數(shù)字越小,優(yōu)先級越高。

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

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

        r:保留位。

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

        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)先級最高的報(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)識符及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)識符(擴(kuò)展幀為29位標(biāo)識符的高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)先級。

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

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

        (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ù)對象SDO(Service Data Object)。

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

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

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

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

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

        通過Canopen協(xié)議,不同廠商的各類設(shè)備都可以經(jīng)由CAN總線互連在一起,Canopen主節(jié)點(diǎn)通過從節(jié)點(diǎn)的電子數(shù)據(jù)文檔,可以便捷地對從節(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)行靈活地控制,還可以方便地對下位機(jī)進(jìn)行組態(tài)和編程。下位機(jī)采用施耐德TM258型PLC做為控制器,PLC在工業(yè)現(xiàn)場環(huán)境下有較好的穩(wěn)定性和可靠性,TM258集成了Modbus-TCP/RTU接口、Canopen接口、各種傳感器接口和可靈活擴(kuò)展的I/O,既方便使用又節(jié)約成本。

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

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

        上位機(jī)上電后初始化完畢,專門創(chuàng)建一個(gè)通訊任務(wù)。通訊任務(wù)對下位機(jī)建立TCP連接后,循環(huán)獲取控制任務(wù)產(chǎn)生的通訊命令,對下位機(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;

        為簡化程序設(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對象

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

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

        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(); //對象復(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ā)送請求

        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中,對系統(tǒng)配置進(jìn)行組態(tài)。SoMachine中集成了對LM23A型伺服系統(tǒng)進(jìn)行控制的功能塊,為簡化PLC的程序設(shè)計(jì),我們直接采用了LM23A型伺服系統(tǒng)。PLC配置如圖11所示。

        作為Modbus-TCP服務(wù)器,TM258型PLC不需要做任何配置,也不用編寫全任何通訊程序,只要以太網(wǎng)IP地址設(shè)置好,直接使用參與通迅的寄存器就可以了。通過Modbus-RTU對變頻器控制時(shí),PLC和變頻器的串口參數(shù)要確保一致,PLC配置好Modbus-RTU主站后,在調(diào)用PLC通訊功能塊時(shí),需要將讀寫寄存器的地址對應(yīng)到變頻器中相關(guān)速度、加速度等控制參數(shù)和扭矩、電流等狀態(tài)參數(shù)的地址上。通過Canopen對伺服驅(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對伺服的控制更簡單,我們不用專門編寫對伺服對象字典的控制程序,PLC為我們提供了豐富的已經(jīng)打包好的集通訊與控制于一體的功能塊。我們對伺服進(jìn)行絕對位置定位的結(jié)構(gòu)化文本(ST語言)程序如下:

        變量定義:

        PROGRAM servo_ctrl

        VAR

        abs_move: MC_MoveAbsolute_LXM23; //絕對位置定位功能塊

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

        方立國(1981-),男,高級工程師。

        U

        A

        猜你喜歡
        報(bào)文步行通訊
        《茶葉通訊》簡介
        茶葉通訊(2022年2期)2022-11-15 08:53:56
        《茶葉通訊》簡介
        茶葉通訊(2022年3期)2022-11-11 08:43:50
        基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
        汽車電器(2022年9期)2022-11-07 02:16:24
        通訊報(bào)道
        步行回家
        攀山擅離步行道自拍,不幸墜落身亡誰擔(dān)責(zé)?
        CTCS-2級報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
        淺析反駁類報(bào)文要點(diǎn)
        中國外匯(2019年11期)2019-08-27 02:06:30
        從步行到奔跑
        通訊簡史
        91精品国产91久久久久久青草| 激情综合五月婷婷久久| 国产精品女同久久久久电影院| 久久久亚洲欧洲日产国码αv | 激情中文丁香激情综合| 日本在线播放不卡免费一区二区| 国产在线精品成人一区二区三区| 黑人大群体交免费视频| 无码国模国产在线观看| 亚洲熟妇av乱码在线观看| 国产精品人成在线观看| 久久国产精品国语对白| 男人天堂网2017| 狼人香蕉香蕉在线28 - 百度| 亚洲一区二区三区国产精华液| 精品无码国产一二三区麻豆| 中文字幕人妻激情在线视频| 日韩在线观看入口一二三四| 国产ww久久久久久久久久| 国产剧情av麻豆香蕉精品| 无码高潮少妇毛多水多水免费| 隔壁的日本人妻bd高清中字| 亚洲一区精品无码| 大陆极品少妇内射aaaaaa| 亚洲熟妇AV一区二区三区宅男 | 女人大荫蒂毛茸茸视频| 第九色区Aⅴ天堂| 久久久国产熟女综合一区二区三区| 国产免费又色又爽粗视频| 性大毛片视频| 亚洲精品亚洲人成在线下载| 国产一级一厂片内射视频播放 | 亚洲色图在线视频观看| 日本一区二区视频在线| 猫咪av成人永久网站在线观看| 精品人妻系列无码一区二区三区 | 成人黄网站免费永久在线观看| 亚洲精品中文字幕视频色| 国产成人无码18禁午夜福利p| 久久亚洲精品ab无码播放| 日本一区二区三区看片|