版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、信捷PLC與計算機串口和以太網(wǎng)通信的VC+編程技術(shù)文獻標(biāo)識碼:ADOI: 10.3969/j.issn.1003-6970.2015.06.014 本文著錄格式:朱向榮,馮喬生,施少捷,等,領(lǐng)域模型中關(guān)聯(lián)語義的描述邏輯表示與應(yīng)用J. 軟件,2015, 36( 6):75-82TechniquesofCommunicationVC+pr02rammingforXinjieP LCwithPCthroughSerialCommunicationPortandEthernetAdapterZHUXiang-rong1 , FENGQiao-sheng1, SHIShao-jie2 , LVLing-
2、zhj3 :XinjeXCseriesPLCisakindofcompletedomesticproduct.Ifthei rupperPCprogramscanbepro-grammedwiththegeneralhigh-leve llanguage , ratherthantheirmodalsoftware , itisenabledtointegratetheupperPCcontrolprogramsofthePLC withthecontrolprogramsofotherdevices , andXCseriesPLCcanthenbefurtherwidelyused.Thi
3、spaperpropo sedthetechniquesofVC+programmingofcommunicationsbetwee nPCandXCseriesPLCthroughRS232andEthernetnetworkadapterr espectively , whichenabledtheVC+upperprogramstosenddatatotheXCseriesPLCorreceivethedatafromthem.TheremotecontrolsoftheXCser iesPLCcanthusbeimplementedbytheVC+upperPCprograms.Key
4、words : XinjieXCseriesPLC ; RS232;PCEthernetadapter ; Modbusprotocol0 引言本文的研究來源是針對昆明鑫輝檢測XX公司對于多用途高空爬行器平臺的研發(fā)。多用途高空爬行器平臺具有超聲波檢測功能和對周圍環(huán)境監(jiān)控的功能,這就需要爬行器搭載相應(yīng)的設(shè)備。信捷XC系列PLC通過模態(tài)軟件開發(fā)控制程序,再與信捷電氣XX公司自主研發(fā)的人機界面通信從而達到控制PLC的效果。然而對于多用途高空爬行器平臺就有很大的限制,爬行器上位機監(jiān)控程序不能與其它設(shè)備進行集成。本文研究XC系列PLC上位機監(jiān)控程序的VC編程1 技術(shù), 希望這項技術(shù)能應(yīng)用于多用途爬行器平
5、臺的研發(fā),實現(xiàn)通過VC程序來控制爬行器的運動,從而實現(xiàn)XC系列PLC上位機監(jiān)控程序2 與其它設(shè)備用戶界面程序的有效集成。PLC與上位機PC的通信是開發(fā)PLC上位機監(jiān)控程序的關(guān)鍵環(huán)節(jié),按應(yīng)用環(huán)境的不同,可采用RS-232 通信方式,基于無線ZigBee3 的近距離無線通信方式。和基于以太網(wǎng)的遠距離通信方式。本文針對昆明鑫輝檢測XX公司的應(yīng)用需求,主要研究基于 RS-232 的通信與以太網(wǎng)的通信方式的VC編程技術(shù)。1 信捷 XC系列PLC通訊功能1.1 概述XC系列PLC都支持Modbus協(xié)議、自由協(xié)議通訊功能,其中XC5系列中48 點與 60 點機型與XCC系列PLC還具有CANbus總線功能。
6、XC系列PLC有 2 個通訊口(Portl 、 Port2 )。通訊口1( Portl )為編程口,支持RS232方式,可以用來下載程序以及連接外接設(shè)備,此通訊口的通訊參數(shù)(波特率、數(shù)據(jù)位等)可以通過軟件重新設(shè)置。通訊口2( Port2 )為通訊口,可以用來下載程序以及連接外接設(shè)備,此通訊口的通訊參數(shù)(波特率、數(shù)據(jù)位等) 可以通過軟件重新設(shè)置,其中 port2 既支持RS232又支持RS485( RS485端子在輸出端,A為 485+、 B為 485-),但需注意兩者不能同時使用。XC系列PLC通訊參數(shù):站號1-254 表示是 Modbus通訊方式,255( FF)為自由格式通訊。波特率為30
7、0bps-115.2Kbps 。 數(shù)據(jù)位有8個和 7個數(shù)據(jù)位兩種。停止位有2 個和 1 個停止位兩種。有偶校驗、奇校驗、無校驗三種。通訊口默認(rèn)參數(shù):站號為1、波特率19200bps、 8 個數(shù)據(jù)位、1 個停止位、偶校驗。信捷公司的XCPPro編程軟件中集成了修改通訊口的模塊,通過軟件來修改通訊口參數(shù),方便直觀,且不易出錯,修改完成后,重新上電才能生效。1.2Modbus協(xié)議簡介4Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議, 控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)和其它設(shè)備之間可以通信,它已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn)。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進行集中監(jiān)控。此協(xié)議定義
8、了一個控制器能認(rèn)識使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進行通信的, 它描述了一控制器請求訪問其它設(shè)備的過程,如何回應(yīng)來自其它設(shè)備的請求,以及怎樣偵測錯誤并記錄,它制定了消息域格局和內(nèi)容的公共格式。當(dāng)在一個Modbus網(wǎng)絡(luò)上通信時, 此協(xié)議決定了每個控制器須要知道它們的設(shè)備地址,識別按地址發(fā)來的消息,決定要產(chǎn)生何種行動。如果需要回應(yīng),控制器將生成反饋信息并用Modbus協(xié)議發(fā)出。1.2.1 傳輸方式通信傳輸方式是一個信息幀內(nèi)一系列獨立的數(shù)據(jù)結(jié)構(gòu)以及用于傳輸數(shù)據(jù)的有限則,Modbus協(xié)議有兩種傳輸方式,RTU方式和 ASCII 碼字符串方式,以RTU模式在Modbus總線上進行通訊時,信息中的
9、每8 位字節(jié)分成2 個 4 位 16 進制的字符,每個信息必須連續(xù)傳輸下面定義了與Modebus協(xié)議RTU方式相兼容的傳輸方式。用戶選擇想要的模式,包括串口通信參數(shù)(波特率、校驗方式等),在配置每個控制器的時候,在一個Modbus網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù)。信捷PLC按字符串方式與終端傳感器通信,而按RTU方式與上位機通信,所以本文主要研究RTU方式和PLC通信的VC編程技術(shù)。1.2.2 RTU 數(shù)據(jù)幀格式ModbusRTU信息幀5 如圖 1 所示, 所允許的最大長度為256個字節(jié), 即 N 的范圍是大于等于零且小于等于252( NO, 252) 。地址域:信息幀地址域
10、在幀的開始部分,由8 位組成,有效0-247 ,各從機設(shè)備的尋址范圍為1-247主機把從機地址放入信息幀的地址區(qū),并向從機尋址。從機響應(yīng)時, 把自己的地址放入響應(yīng)信息的地址區(qū),讓主機識別已作出響應(yīng)的從機地址。地址0 為廣播地址,所有從機均能識別。功能域: 信息幀功能域代碼告訴了被尋址到的終端執(zhí)行何種功能。有效碼范圍1-225,有些代碼是適用于所有控制器,有些適應(yīng)于某種控制器,還有些保留以備后用,信捷XC系列PLC功能碼對應(yīng)的功能及對應(yīng)的Modbus指令如下表1。當(dāng)主機向從機發(fā)送信息時,功能代碼向從機說明應(yīng)執(zhí)行的動作。如讀一組離散式線圈或輸入信號的ON/OFF狀態(tài),瀆一組寄存器的數(shù)據(jù),讀從機的診
11、斷狀態(tài),寫線圈(或寄存器),允許下截、記錄、確認(rèn)從機內(nèi)的程序等。當(dāng)從機響應(yīng)主機時,功能代碼可說明從機正常響應(yīng)或m現(xiàn)錯誤(即不正常響應(yīng)),正常響應(yīng)時,從機簡單返回原始功能代碼;不正常響應(yīng)時,從機返回與原始代碼相等效的一個碼,并把最高有效位設(shè)定為“1”。數(shù)據(jù)域: 數(shù)據(jù)域包含了終端執(zhí)行特定功能所需要的數(shù)據(jù)或者終端響應(yīng)查詢時采集到的數(shù)據(jù)。這些數(shù)據(jù)的內(nèi)容可能是數(shù)值、參考地址或者極限值。它由數(shù)據(jù)區(qū)有2 個 16 進制的數(shù)據(jù)位( 2 的 8次方256),數(shù)據(jù)范圍為OO-FF( 16進制)。例如:功能域碼告訴終端讀取一個寄存器,數(shù)據(jù)域則需要指明從哪個寄存器開始及讀取多少個數(shù)據(jù),內(nèi)嵌的地址和數(shù)據(jù)依照類型和從機之
12、間的不同能力而有所不同。若無錯誤出現(xiàn),從機向主機的響應(yīng)信息中包含機能判斷并做出下一步的動作。信捷XC系列PLC線圈空間地址為表 2,寄存器空間地址為表3。CRC-16循環(huán)冗余校驗碼:目前較常用的CRC位數(shù)目有8 和16以及32,在這里只講述如何寫CRC位數(shù)目為16的程序。CRC位數(shù)目越大,數(shù)據(jù)的錯誤檢測率則越高,但必須多花一些時間進行數(shù)據(jù)的計算。CRC-16的計算方法有兩種:查表法與計算法,在這里只介紹計算法。生成一個CRC的流程為:Step1 、預(yù)置一個16 位寄存器為OFFFFH(全1),稱之為CRC寄存器。Step2、把數(shù)據(jù)幀中的第一個8 位字節(jié)與CRC寄存器中的低字節(jié)進行異或運算,結(jié)果
13、存回CRC寄存器。Step3、將CRC寄存器向右移一位,最高位填以0,最低位移出并檢測。Step4、如果最低位為0:重復(fù)第3 步(下一次移位)。如果最低位為1:將CRC寄存器與一個預(yù)設(shè)的固定值(OAOOIH)進行異或運算。Step5、重復(fù)第3步和第4步直到8次移位。這樣處理完了一個完整的八位。Step6、重復(fù)第2步到第5步來處理下一個八位,直到所有的字節(jié)處理結(jié)束。Step7、最終CRC寄存器得值就是CRC的值。它通過一個簡單的“口”進入尋址到的設(shè)備,該設(shè)備去掉數(shù)據(jù)幀的“信封”(數(shù)據(jù)頭),讀取數(shù)據(jù),如果沒有錯誤,就執(zhí)行數(shù)據(jù)所請求的任務(wù),然后,它將白己生成的數(shù)據(jù)加入到取得的“信封”中,把數(shù)據(jù)幀返回
14、給發(fā)送者。返回的響應(yīng)數(shù)據(jù)中包含了以下內(nèi)容:終端從機地址(Address)、被執(zhí)行了的命令( Function ) 、 執(zhí)行命令生成的被請求數(shù)據(jù)( Data)和一個校驗碼(Check)。發(fā)生任何錯誤都不會有成功的響應(yīng)。2VC+程序與XC系列PLC串口通信技術(shù)62.1 上位端PC機程序的設(shè)計我們設(shè)計了CSearchDevices 類 7 來進行計算機上串口的搜索、PC機與PLC的串口通信連接、命令與數(shù)據(jù)讀寫,即包括下列幾個成員函數(shù):( 1) voidSearchSerialCommPort ( void )該函數(shù)搜索上位機PC可用的串口。( 2) HANDLEOpenCommunicationDe
15、vic(e intindex , boolwriteFlag , intbaudRate , intbyteSize , intparity , boolsynchrose )該函數(shù)是打開和設(shè)置串口參數(shù)。第一個參數(shù)是串口的索引號。第二個參數(shù)是指定串口是按哪種方式打開(一種是可瀆、可寫,另一種是可讀)。第三個參數(shù)是指定波特率的大小。第四個參數(shù)是發(fā)送和接收比特的字節(jié)數(shù)。第五個參數(shù)是指定校驗方式( 0表示無校驗,1 奇校驗,2 表示偶校驗),本項目采用的是偶校驗。第六個參數(shù)如果是TRUE,則通過CreateFile 函數(shù)允許對文件進行重疊操作。( 3) voidCRCCodeing( BYTE*da
16、ta, intnumBytes )該函數(shù)是生成CRC-16循環(huán)冗余校驗碼。第一個參數(shù)是一個BYTE類型指針,傳進到該函數(shù)的是一個BYTE類型數(shù)組的地址,調(diào)用此函數(shù)時這個參數(shù)可用將要檢驗的BYTE類型數(shù)組名。第二個參數(shù)是這個BYTE類型數(shù)組的長度。通過上面介紹的生成CRC-16循環(huán)冗余校驗碼步驟方法,將生成的校驗碼依次從高到底放人最后兩個字節(jié)。( 4) DWORDSendDa( taBYTE*buf, DWORDdwLeng, th HANDLEfileHandle )該函數(shù)是用于發(fā)送數(shù)據(jù)。第一個參數(shù)是一個BYTE類型指針,傳進到函數(shù)的是一個BYTE類型數(shù)組的地址。這個地址可以用將要發(fā)送出去的B
17、YTE類型數(shù)組名代替。第二個參數(shù)是BYTE類型數(shù)組的長度。第三個參數(shù)是發(fā)送數(shù)據(jù)串口的句柄。( 5) DWORDReadDa( tachar*buf , DWORDdwLeng, th HANDLEfileHandle )該函數(shù)是用于接收數(shù)據(jù)。第一個參數(shù)是一個BYTE類型指針,傳進到函數(shù)的是一個BYTE類型數(shù)組的地址。這個地址可以用將要把接收的數(shù)據(jù)放到BYTE類型的數(shù)組名代替。第二個參數(shù)是BYTE類型數(shù)組的長度。第三個參數(shù)是接收數(shù)據(jù)串口的句柄。( 6) voidCloseDevice ( HANDLEfileHandle )該函數(shù)是通過調(diào)用CloseHandle ( fileHandle )函數(shù)
18、,釋放串口資源。其中 CloseHandle 函數(shù)所調(diào)用的是一個句柄類型的參數(shù) fileHandle , fileHandle 是 OpenCommunicationDevice 函數(shù)調(diào)用 CreateFile 函數(shù)的返回值。創(chuàng)建該類的實例,調(diào)用上述成員函數(shù),就可實現(xiàn)PC機與信捷 XC系列PLC之間的通信功能。我們在上位機控制程序的按鈕消息處理函數(shù)中調(diào)用這些函數(shù)實現(xiàn)通過RS232串口與爬行器中PLC的通信,實現(xiàn)對爬行器的運動控制。例如,想要爬行器向前行走時, 就點擊“前行”按鈕, 此時程序負(fù)責(zé)將指令數(shù)據(jù)通過串口發(fā)送給PLC,控制爬行器行走。2.2 上位機端PC與 PLC通信的實驗驗證本文用圖二
19、所示的PLC梯形圖程序來驗證PC機與信捷XC系列 PLC通信的VC+編程技術(shù),即只要在上位機PC的 VC程序中能對信捷XC系列PLC線圈M3置成ON狀態(tài)時,PLC上 YO、 Yl 、Y2、 Y3、 Y4、 Y5指示燈會亮,從而通過觀察這些燈是否亮來驗證 VC程序與PLC通信是否成功。本文用XC系列編程T具 XCPPror軟件編寫該梯形圖程序下載到PLC中。未置M3前,信捷PLC的指示燈狀態(tài)圖如圖三所示,即 YO-Y5的指示燈均處于熄滅狀態(tài)。然后在上位機VC程序中發(fā)送了十六進制表示的數(shù)據(jù)幀:01050003FF003C58。 按從左到右的順序, 開始的 1 個字節(jié)是PLC站號、第 2 個字節(jié)代表
20、功能碼,05H=寫單個線圈指令。第3、 4 字節(jié)是線圈地址,第5、 6 字節(jié)是將線圈 M3置成 ON狀態(tài)。第7、 8 字節(jié)是校驗碼高字節(jié)和低字節(jié)。PLC的指示燈YO-Y5的狀態(tài)如圖四所示,即它們均處于發(fā)光狀態(tài),從而證實了“置M3”的命令(03H)正確無誤地發(fā)送到了PLC。3VC程序與XC系列PLC以太網(wǎng)通信技術(shù)3.1 Modbus協(xié)議在 TCP/IP 上的實現(xiàn)ModbusTCP8是運行在TCP/IP 的 Modbus報文傳輸協(xié)議。通過此協(xié)議,控制器相互之間通過網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。ModbusTCP是開放的協(xié)議,IANA( InternetAssignedNumberAut
21、hority ,互聯(lián)網(wǎng)編號分配管理機構(gòu))給Modbus協(xié)議賦予TCP編號為502,這是目前在儀表與自動化行業(yè)中唯一分配到的端口號。ModbusTCP/IP協(xié)議模型為:圖5事物處理標(biāo)識箱的長度為2 個字節(jié),Modbus請求/響應(yīng)事務(wù)處理的識別,客戶機啟動而服務(wù)器從接收的請求中重新復(fù)制。協(xié)議標(biāo)識符的長度為2 個字節(jié),當(dāng)為0 時表示是Modbus協(xié)議,客戶機啟動而服務(wù)器從接收的請求中重新復(fù)制。長度為2 個字節(jié),表示隨后字節(jié)數(shù)量,客戶機啟動(請求) 而服務(wù)器 (響應(yīng)) 啟動。單元標(biāo)識符為1 個字節(jié), 串行鏈路或其它總線上連接的遠程從站的識別,客戶機啟動,而服務(wù)器從接收的請求中重新復(fù)制。在通信應(yīng)用層中,
22、Modbus客戶機允許用戶應(yīng)用控制與遠程設(shè)備的信息交換。Modbus客戶機根據(jù)用戶應(yīng)用向Modbus客戶機接口的發(fā)送要求中所包含的參數(shù)來建立一個Modbus請求,并且提供一個接口,使得用戶應(yīng)用能夠生成各類Modbus服務(wù)的請求,該服務(wù)包括對Modbus應(yīng)用對象的訪問。Modbus服務(wù)器在收到一個 Modbus請求以后,模塊激活一個本地操作進行讀、寫、或完成其它操作。在客戶機和服務(wù)器的Modbus模塊之間的通信需要使用TCP連接管理模塊,負(fù)責(zé)全面管理報文傳輸TCP連接。在某些至關(guān)重要的場合,必須禁止無關(guān)的主機對設(shè)備內(nèi)部數(shù)據(jù)的訪問。可以對TCP/IP 的棧進行參數(shù)配置,以適用于不同的產(chǎn)品或系統(tǒng)特定
23、的約束條件,來進行數(shù)據(jù)流控制、地址管理和連接管理,使用BSD套接字接口來管理TCP連接。3.2 上位端PC機程序的設(shè)計為了能達到上位端PC機與PLC的 TCP/IP 通信, 采用 Socket編程 9 。它們的通信模式如圖7。在此模式下PC機是作為客戶端,PLC作為服務(wù)器端。在信捷 XC系列PLC的以太網(wǎng)絡(luò)通信模塊XC-TBOX-BD-T201上具有四個撥碼開關(guān),每個開關(guān)有兩種狀態(tài)為ON/OFF如圖8 所示。撥碼開關(guān)對應(yīng)功能如表4 所示:針對昆明鑫輝檢測XX公司對于多用途高空爬行器平臺的研發(fā)。所采用的設(shè)置為Sl 開關(guān)置成OFF狀態(tài)。S2開關(guān)置成ON狀態(tài)。 S3開關(guān)置成OFF,選擇默認(rèn)地址與PC
24、機進行通信。將PC機的 IP 地址設(shè)成與PLC在同一網(wǎng)段的其它任何IP 地址, 我們設(shè)置成 192.168.0.112 。通過 Socket 實現(xiàn)以太網(wǎng)通信連接的三個關(guān)鍵步驟如下:( 1)調(diào)用 WindowsAPIsocket 函數(shù)創(chuàng)建套接字:hServer=socket ( AF_INET, SOCK_STRE,AMIPPROTO_IP) ; /TCP 套接字( 2)定義套接字結(jié)構(gòu)體并進行設(shè)置:sockaddr_insaServer=0 :saServer.sin_family=PF_INET ;saServer.sin_port=htons ( 502);/ 連接PLC所用到的端口saServer.sin_addr.s_addr=inet_addr(”192.168.0.111 ”); /PLC 的 IP 地址( 3) 調(diào)用 WindowsAPIconnect 函數(shù)創(chuàng)建PC機與PLC的以太網(wǎng)通信連接:nRet=connect( hServer
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年在線預(yù)約服務(wù)協(xié)議
- 2025年倉庫出租合同
- 2025年現(xiàn)金贈與合同的風(fēng)險評估
- 2025年進口擔(dān)保協(xié)議
- 2025年存貨質(zhì)押法律法規(guī)匯編
- 2025版委托代銷與授權(quán)經(jīng)營合同3篇
- 2025版高端酒店客房裝修與維護服務(wù)合同4篇
- 2025年度商鋪租賃預(yù)付定金合同范本4篇
- 二零二五年度企業(yè)裁員補償解除勞動合同賠償協(xié)議
- 二零二五年度鐵路貨運合同貨物運輸合同糾紛解決機制協(xié)議
- 機電安裝工程安全管理
- 2024年上海市第二十七屆初中物理競賽初賽試題及答案
- 信息技術(shù)部年終述職報告總結(jié)
- 高考滿分作文常見結(jié)構(gòu)完全解讀
- 理光投影機pj k360功能介紹
- 六年級數(shù)學(xué)上冊100道口算題(全冊完整版)
- 八年級數(shù)學(xué)下冊《第十九章 一次函數(shù)》單元檢測卷帶答案-人教版
- 帕薩特B5維修手冊及帕薩特B5全車電路圖
- 小學(xué)五年級解方程應(yīng)用題6
- 年月江西省南昌市某綜合樓工程造價指標(biāo)及
- 作物栽培學(xué)課件棉花
評論
0/150
提交評論