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

信捷PLC與計算機串口和以太網通信的VC++編程技術

2015-12-26 12:18:50朱向榮馮喬生施少捷呂苓芝
軟件 2015年6期

朱向榮+馮喬生+施少捷+呂苓芝

摘要:信捷XC系列PLC是完全國產化的產品。若使其上位機程序能用通用高級語言而非只是該機模態軟件編寫,就能使XC系列PLC上位機控制程序與其它設備控制程序進行集成,有利于進一步促進PLC推廣應用。本文研究了信捷XC系列PLC與計算機分別通過串口RS232和以太網進行通信的VC++編程技術,使得能在上位機VC++程序中發送與接收XC系列PLC的數據,從而實現了PC機通過VC++上位機程序對PLC的遠程控制。

關鍵詞:信捷XC系列PLC;RS232;PC機以太網卡;Modbus協議

中圖分類號:TP393

文獻標識碼:A

DOI:10.3969/j.issn.1003-6970.2015.06.014

本文著錄格式:朱向榮,馮喬生,施少捷,等,領域模型中關聯語義的描述邏輯表示與應用[J].軟件,2015,36(6):75-82TechniquesofCommunicationVC++pr02rammingforXinjiePLCwithPCthroughSerialCommunicationPortandEthernetAdapter

ZHUXiang-rong1,FENGQiao-sheng1,SHIShao-jie2,LVLing-zhj3

[Abstract]:XinjeXCseriesPLCisakindofcompletedomesticproduct.IftheirupperPCprogramscanbepro-grammedwiththegeneralhigh-levellanguage,ratherthantheirmodalsoftware,itisenabledtointegratetheupperPCcontrolprogramsofthePLCwiththecontrolprogramsofotherdevices,andXCseriesPLCcanthenbefurtherwidelyused.ThispaperproposedthetechniquesofVC++programmingofcommunicationsbetweenPCandXCseriesPLCthroughRS232andEthernetnetworkadapterrespectively,whichenabledtheVC++upperprogramstosenddatatotheXCseriesPLCorreceivethedatafromthem.TheremotecontrolsoftheXCseriesPLCcanthusbeimplementedbytheVC++upperPCprograms.

[Keywords]:XinjieXCseriesPLC;RS232;PCEthernetadapter;Modbusprotocol

0引言

本文的研究來源是針對昆明鑫輝檢測有限公司對于多用途高空爬行器平臺的研發。多用途高空爬行器平臺具有超聲波檢測功能和對周圍環境監控的功能,這就需要爬行器搭載相應的設備。信捷XC系列PLC通過模態軟件開發控制程序,再與信捷電氣股份有限公司自主研發的人機界面通信從而達到控制PLC的效果。然而對于多用途高空爬行器平臺就有很大的限制,爬行器上位機監控程序不能與其它設備進行集成。本文研究XC系列PLC上位機監控程序的VC編程[1]技術,希望這項技術能應用于多用途爬行器平臺的研發,實現通過VC程序來控制爬行器的運動,從而實現XC系列PLC上位機監控程序[2]與其它設備用戶界面程序的有效集成。PLC與上位機PC的通信是開發PLC上位機監控程序的關鍵環節,按應用環境的不同,可采用RS-232通信方式,基于無線ZigBee[3]的近距離無線通信方式。和基于以太網的遠距離通信方式。本文針對昆明鑫輝檢測有限公司的應用需求,主要研究基于RS-232的通信與以太網的通信方式的VC編程技術。

1信捷XC系列PLC通訊功能

1.1概述

XC系列PLC都支持Modbus協議、自由協議通訊功能,其中XC5系列中48點與60點機型與XCC系列PLC還具有CANbus總線功能。XC系列PLC有2個通訊口(Portl、Port2)。通訊口1(Portl)為編程口,支持RS232方式,可以用來下載程序以及連接外接設備,此通訊口的通訊參數(波特率、數據位等)可以通過軟件重新設置。通訊口2(Port2)為通訊口,可以用來下載程序以及連接外接設備,此通訊口的通訊參數(波特率、數據位等)可以通過軟件重新設置,其中port2既支持RS232又支持RS485(RS485端子在輸出端,A為485+、B為485-),但需注意兩者不能同時使用。XC系列PLC通訊參數:站號1-254表示是Modbus通訊方式,255(FF)為自由格式通訊。波特率為300bps-115.2Kbps。數據位有8個和7個數據位兩種。停止位有2個和1個停止位兩種。有偶校驗、奇校驗、無校驗三種。通訊口默認參數:站號為1、波特率19200bps、8個數據位、1個停止位、偶校驗。信捷公司的XCPPro編程軟件中集成了修改通訊口的模塊,通過軟件來修改通訊口參數,方便直觀,且不易出錯,修改完成后,重新上電才能生效。

1.2Modbus協議簡介[4]

Modbus協議是應用于電子控制器上的一種通用語言。通過此協議,控制器相互之間、控制器經由網絡和其它設備之間可以通信,它已經成為一通用工業標準。有了它,不同廠商生產的控制設備可以連成工業網絡,進行集中監控。此協議定義了一個控制器能認識使用的消息結構,而不管它們是經過何種網絡進行通信的,它描述了一控制器請求訪問其它設備的過程,如何回應來自其它設備的請求,以及怎樣偵測錯誤并記錄,它制定了消息域格局和內容的公共格式。

當在一個Modbus網絡上通信時,此協議決定了每個控制器須要知道它們的設備地址,識別按地址發來的消息,決定要產生何種行動。如果需要回應,控制器將生成反饋信息并用Modbus協議發出。

1.2.1傳輸方式

通信傳輸方式是一個信息幀內一系列獨立的數據結構以及用于傳輸數據的有限則,Modbus協議有兩種傳輸方式,RTU方式和ASCII碼字符串方式,以RTU模式在Modbus總線上進行通訊時,信息中的每8位字節分成2個4位16進制的字符,每個信息必須連續傳輸下面定義了與Modebus協議RTU方式相兼容的傳輸方式。用戶選擇想要的模式,包括串口通信參數(波特率、校驗方式等),在配置每個控制器的時候,在一個Modbus網絡上的所有設備都必須選擇相同的傳輸模式和串口參數。信捷PLC按字符串方式與終端傳感器通信,而按RTU方式與上位機通信,所以本文主要研究RTU方式和PLC通信的VC編程技術。

1.2.2RTU數據幀格式

ModbusRTU信息幀[5]如圖1所示,所允許的最大長度為256個字節,即N的范圍是大于等于零且小于等于252(N{O,252})。

地址域:信息幀地址域在幀的開始部分,由8位組成,有效的從機設備地址范圍0-247,各從機設備的尋址范圍為1-247。主機把從機地址放入信息幀的地址區,并向從機尋址。從機響應時,把自己的地址放入響應信息的地址區,讓主機識別已作出響應的從機地址。地址0為廣播地址,所有從機均能識別。

功能域:信息幀功能域代碼告訴了被尋址到的終端執行何種功能。有效碼范圍1-225,有些代碼是適用于所有控制器,有些適應于某種控制器,還有些保留以備后用,信捷XC系列PLC功能碼對應的功能及對應的Modbus指令如下表1。當主機向從機發送信息時,功能代碼向從機說明應執行的動作。如讀一組離散式線圈或輸入信號的ON/OFF狀態,瀆一組寄存器的數據,讀從機的診斷狀態,寫線圈(或寄存器),允許下截、記錄、確認從機內的程序等。當從機響應主機時,功能代碼可說明從機正常響應或m現錯誤(即不正常響應),正常響應時,從機簡單返回原始功能代碼;不正常響應時,從機返回與原始代碼相等效的一個碼,并把最高有效位設定為“1”。

數據域:數據域包含了終端執行特定功能所需要的數據或者終端響應查詢時采集到的數據。這些數據的內容可能是數值、參考地址或者極限值。它由數據區有2個16進制的數據位(2的8次方256),數據范圍為OO-FF(16進制)。例如:功能域碼告訴終端讀取一個寄存器,數據域則需要指明從哪個寄存器開始及讀取多少個數據,內嵌的地址和數據依照類型和從機之間的不同能力而有所不同。若無錯誤出現,從機向主機的響應信息中包含了請求數據,若有錯誤出現,則數據中有一個不正常代碼,使主機能判斷并做出下一步的動作。信捷XC系列PLC線圈空間地址為表2,寄存器空間地址為表3。

CRC-16循環冗余校驗碼:目前較常用的CRC位數目有8和16以及32,在這里只講述如何寫CRC位數目為16的程序。CRC位數目越大,數據的錯誤檢測率則越高,但必須多花一些時間進行數據的計算。CRC-16的計算方法有兩種:查表法與計算法,在這里只介紹計算法。生成一個CRC的流程為:

Step1、預置一個16位寄存器為OFFFFH(全1),稱之為CRC寄存器。

Step2、把數據幀中的第一個8位字節與CRC寄存器中的低字節進行異或運算,結果存回CRC寄存器。

Step3、將CRC寄存器向右移一位,最高位填以0,最低位移出并檢測。

Step4、如果最低位為0:重復第3步(下一次移位)。如果最低位為1:將CRC寄存器與一個預設的固定值(OAOOIH)進行異或運算。

Step5、重復第3步和第4步直到8次移位。這樣處理完了一個完整的八位。

Step6、重復第2步到第5步來處理下一個八位,直到所有的字節處理結束。

Step7、最終CRC寄存器得值就是CRC的值。

當信息幀到達終端設備時,它通過一個簡單的“口”進入尋址到的設備,該設備去掉數據幀的“信封”(數據頭),讀取數據,如果沒有錯誤,就執行數據所請求的任務,然后,它將白己生成的數據加入到取得的“信封”中,把數據幀返回給發送者。返回的響應數據中包含了以下內容:終端從機地址(Address)、被執行了的命令(Function)、執行命令生成的被請求數據(Data)和一個校驗碼(Check)。發生任何錯誤都不會有成功的響應。2VC++程序與XC系列PLC串口通信技術[6]2.1上位端PC機程序的設計

我們設計了CSearchDevices類[7]來進行計算機上串口的搜索、PC機與PLC的串口通信連接、命令與數據讀寫,即包括下列幾個成員函數:

(1)voidSearchSerialCommPort(void)

該函數搜索上位機PC可用的串口。

(2)HANDLEOpenCommunicationDevice(intindex,boolwriteFlag,intbaudRate,intbyteSize,intparity,boolsynchrose)

該函數是打開和設置串口參數。第一個參數是串口的索引號。第二個參數是指定串口是按哪種方式打開(一種是可瀆、可寫,另一種是可讀)。第三個參數是指定波特率的大小。第四個參數是發送和接收比特的字節數。第五個參數是指定校驗方式(0表示無校驗,1奇校驗,2表示偶校驗),本項目采用的是偶校驗。第六個參數如果是TRUE,則通過CreateFile函數允許對文件進行重疊操作。

(3)voidCRCCodeing(BYTE*data,intnumBytes)

主站蜘蛛池模板: 欧类av怡春院| 亚洲男人的天堂久久香蕉 | 中文字幕66页| 亚洲经典在线中文字幕| 国产在线观看91精品| 国产亚洲美日韩AV中文字幕无码成人 | 免费看美女自慰的网站| 性视频一区| 又污又黄又无遮挡网站| 在线看免费无码av天堂的| 欧美高清国产| 又猛又黄又爽无遮挡的视频网站| 2022国产91精品久久久久久| 亚洲欧洲综合| 91亚洲视频下载| 精品国产中文一级毛片在线看 | 极品国产一区二区三区| 亚洲国产日韩欧美在线| 成年A级毛片| 色偷偷男人的天堂亚洲av| 性激烈欧美三级在线播放| 欧洲一区二区三区无码| 亚洲va视频| 色综合中文字幕| 福利在线不卡一区| 91精品福利自产拍在线观看| 国产精品偷伦视频免费观看国产| jizz国产视频| 色有码无码视频| 欧美日韩导航| P尤物久久99国产综合精品| 精品久久久久无码| 成人免费视频一区二区三区 | 国产精品密蕾丝视频| 久久久久久午夜精品| av一区二区无码在线| 99久久人妻精品免费二区| 白浆视频在线观看| 美女免费精品高清毛片在线视| 久久精品aⅴ无码中文字幕| 精品自拍视频在线观看| 在线中文字幕网| 亚洲欧美一区二区三区图片 | 亚洲美女视频一区| 国产精品成| 国产成+人+综合+亚洲欧美| 国产亚洲成AⅤ人片在线观看| 亚洲中久无码永久在线观看软件| 欧美精品伊人久久| 国产精品福利一区二区久久| 欧美啪啪网| 久久免费看片| 一级片免费网站| 在线色综合| 99久久国产综合精品2020| 国产成人高精品免费视频| 高清无码不卡视频| 国产美女精品一区二区| 在线观看视频99| 亚洲国产成人精品青青草原| 国产视频入口| 中文字幕亚洲综久久2021| 久久鸭综合久久国产| 久久综合九色综合97网| 国产免费高清无需播放器| 欧洲亚洲欧美国产日本高清| 四虎成人精品| 国产天天色| 久夜色精品国产噜噜| 欧美va亚洲va香蕉在线| 毛片基地视频| 无码丝袜人妻| 97在线视频免费观看| 美女免费精品高清毛片在线视| 日韩在线2020专区| 九色在线视频导航91| 国产第一色| 国产精品2| 91精品国产91久久久久久三级| 亚洲免费毛片| 亚洲永久色| 国产成人高清亚洲一区久久|