日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

當(dāng)前位置:機(jī)電之家首頁(yè) >> PLC技術(shù)>> PLC文案資料 >> PLC論文 >> Windows98下單臺(tái)PC與多臺(tái)變頻器的串行通信控制
Windows98下單臺(tái)PC與多臺(tái)變頻器的串行通信控制

一、前言

在許多數(shù)控設(shè)備中,經(jīng)常要用變頻器去控制交流電機(jī)的轉(zhuǎn)速、轉(zhuǎn)向。在某些地方,需要用一臺(tái)工控PC機(jī)靈活地控制多臺(tái)變頻器,以達(dá)到控制各交流電機(jī)的目的。針對(duì)這一需要,一些公司(如德國(guó)的西門子、日本東芝、三菱等公司)推出了帶有RS485通信接口的變頻器,使用戶能夠方便靈活地選擇變頻器的強(qiáng)大功能。

在bbbbbbs98下開發(fā)工控軟件,可以利用bbbbbbs98的豐富資源,方便地生成各種菜單及美觀大方的圖形界面,軟件產(chǎn)品質(zhì)量高且開發(fā)周期短。Visual Basic6.0是Microsoft公司推出的功能強(qiáng)大的bbbbbbs開發(fā)軟件,只能在bbbbbbs環(huán)境下運(yùn)行開發(fā)32位的應(yīng)用程序。但在bbbbbbs環(huán)境下,系統(tǒng)完全接管了各種硬件資源,不允許用戶直接控制串行口的中斷管理。如何在bbbbbbs環(huán)境下開發(fā)微機(jī)的底層資源,已成為當(dāng)今工業(yè)控制軟件的一大熱點(diǎn)和難點(diǎn)。

本文利用VB6.0的ActiveX控件——Microsoft Communication控件,方便地實(shí)現(xiàn)bbbbbbs98環(huán)境下與多臺(tái)西門子MicroMaster變頻器的串行通信接口,成功地實(shí)現(xiàn)了用單臺(tái)PC機(jī)對(duì)多臺(tái)交流異步電動(dòng)機(jī)的靈活控制。

二、系統(tǒng)的總體設(shè)計(jì)

圖1為系統(tǒng)的總體方框圖,這里只重點(diǎn)突出PC機(jī)與變頻器RS485的接口部分。RS485的驅(qū)動(dòng)器可帶32個(gè)接收器,在波特率為 100Kbps時(shí),通信距離可達(dá)到1.2km;通信距離為15m,波特率可達(dá)到10Mbps 。在工業(yè)現(xiàn)場(chǎng),RS485是應(yīng)用較多的一種通信
方式。圖中PC機(jī)通過(guò)RS485接口卡與多個(gè)變頻器相連接,最多達(dá)到32臺(tái)。每個(gè)變頻器被賦予各自的地址碼用以識(shí)別身份,這樣上位機(jī)便能通過(guò)RS485通信線,對(duì)掛在上面的變頻器進(jìn)行控制操作。

三、變頻器的串口通信協(xié)議

對(duì)于西門子MicroMaster變頻器。其通信方式為RS-485,波特率最高可達(dá)19200bps;1位起始位,8位數(shù)據(jù)位,1位奇偶效驗(yàn)位,1位停止位。變頻器接收控制的通信協(xié)議如下:

STX:起始字符,02H。

LGE:發(fā)送字節(jié)數(shù),對(duì)于MicroMASTER,為0CH(12個(gè)字節(jié))。

ADR:變頻器的地址碼,取值范圍為0-31(bit:0-4位),bit5為1時(shí)為廣播發(fā)送。

PKE:為一16位的字,用來(lái)控制變頻器的運(yùn)行參數(shù)設(shè)置,各bit的含義如下:

對(duì)于MicroMaster,控制位為0001時(shí),讀變頻器的參數(shù);控制位為0010時(shí),寫參數(shù)到變頻器的RAM和EEPROM。bit11未用,置為0。變頻器的參數(shù)值詳見說(shuō)明書。

IND:為16位的字,未用,置為0。

VAL:為16位的變頻器參數(shù),與PKE一起將運(yùn)行參數(shù)寫入到變頻器中。

STW:為16位的字,用來(lái)控制變頻器的運(yùn)行動(dòng)作。各位的具體含義詳見說(shuō)明書。

HSW:為16位的字,用來(lái)控制變頻器的輸出頻率。滿頻的值為16384(400HZ)對(duì)應(yīng)100%的輸出頻率,最大滿頻的值為32767,即200%的輸出頻率。當(dāng)取值為32768-65535時(shí),表示反向的輸出頻率從0-200%變化,電機(jī)反轉(zhuǎn)。

BBC:效驗(yàn)字符,為前面所有字節(jié)的異或和。

若變頻器#2(地址碼為02H)以滿頻的25%輸出頻率,則以上各參數(shù)的值如下:

同時(shí),變頻器也向上位機(jī)回送狀態(tài)數(shù)據(jù),其通信協(xié)議如下:

與上位機(jī)向北變頻器發(fā)送的控制字相比,變頻器回送的狀態(tài)字只是以ZSW代替了STW,HIW代替了HSW,其余字的含義是一樣的。

ZSW:為16位的字,用來(lái)指示變頻器的當(dāng)前運(yùn)行狀態(tài)。各位的具體含義詳見說(shuō)明書。

HIW:為16位的字,代表變頻器的輸出頻率,其定義與HSW是一樣的。

因此,對(duì)于變頻器能通過(guò)面板按鍵的設(shè)置功能,通過(guò)以上的通信協(xié)議也一樣能實(shí)現(xiàn)。并且通過(guò)RS-485通信線最多能同時(shí)控制32臺(tái)變頻器,同時(shí)各變頻器的運(yùn)行狀態(tài)也能實(shí)時(shí)地回送給上位機(jī),這就大大地方便了用戶,增加了控制系統(tǒng)的靈活性。

四、Viscal Basic 6.0下對(duì)變頻器進(jìn)行串行通信控制

1、VB6.0中的ActiveX控件MSComm

在bbbbbbs環(huán)境下,操作系統(tǒng)完全接管了各種硬件資源,不允許用戶直接控制串行口的中斷管理。以往程序員只能通過(guò)數(shù)目眾多的API函數(shù)來(lái)控制串口。 VB6.0下提供了一個(gè)ActiveX控件Microsoft Communication Control 6.0,簡(jiǎn)稱MSComm控件。用戶可以在自己的應(yīng)用程序嵌入MSComm控件,利用它可以方便地進(jìn)行計(jì)算機(jī)串口的通信管理。

在vb6.0開發(fā)環(huán)境中,MSComm通信控件可直接從VB的ToolBox中加入窗體bbbb,即可用其進(jìn)行通信。若ToolBox中無(wú)此控件,則用Tools的Custom Controls將MSComm.VBX從bbbbbbs的System子目錄中加入VB的ToolBox中。

MSComm控件有許多屬性(Property),其中一些重要的屬性如下:

CommPort:設(shè)置串口號(hào);類型:short 。

Settings:設(shè)置串口通信參數(shù);類型:Csting 。

PortOpen:設(shè)置或返回通信口的狀態(tài);類型:BOOL 。

bbbbbMode:設(shè)置從緩沖區(qū)讀取數(shù)據(jù)的格式;類型:long 。

bbbbb:從接收緩沖區(qū)讀取數(shù)據(jù);類型:VARIANT 。

Output:向發(fā)送緩沖區(qū)寫入數(shù)據(jù);類型:VARIANT 。

InBufferCount:接收緩沖區(qū)中的字節(jié)數(shù);類型:short 。

OutBufferCount:發(fā)送緩沖區(qū)中的字節(jié)數(shù);類型:short 。

CommEvent:設(shè)置或返回bbbbb每次讀出的字節(jié)數(shù);類型:short 。

CommEvent:串口事件;類型:short 。

其中串口號(hào)(CommPort)設(shè)置為1、2等表示COM1、COM2。參數(shù)設(shè)置(Settings)的格式為“B,P,D,S”B表示波特率,P表示奇偶校驗(yàn)(N:無(wú)校驗(yàn),E:偶校驗(yàn),O:奇校驗(yàn)),D表示字節(jié)有效位數(shù),S表示停止位數(shù)。串口狀態(tài)為BOOL變量,TRUE表示打開串口,F(xiàn)ALSE表示關(guān)閉串口。bbbbbMode使程序能方便地選擇從緩沖區(qū)讀取數(shù)據(jù)的格式,設(shè)置為0時(shí),為字符串格式(Text),設(shè)置為1時(shí),為二進(jìn)制格式(Binary)。bbbbbLen設(shè)置或返回的是用bbbbb從緩沖區(qū)讀字符串時(shí)每次讀出的字符個(gè)數(shù),這個(gè)性質(zhì)對(duì)于讀出數(shù)據(jù)塊中長(zhǎng)數(shù)據(jù)串非常有用。

另外,MSComm控件提供了兩種方法來(lái)處理串口通:上面屬性的InBufferCount和OutBufferCount用于串口的查詢方式;對(duì)于較復(fù)雜的通信任務(wù),可通過(guò)SetCommEvent()函數(shù)設(shè)置串口要響應(yīng)的事件,當(dāng)相應(yīng)事件或串口錯(cuò)誤事件發(fā)生時(shí),系統(tǒng)會(huì)激活OnComm()事件,在OnComm()中添加用戶的處理代碼,則可實(shí)現(xiàn)類似DOS中斷的串口處理程序。

2、變頻器串口通信控制檢測(cè)的軟件編程

在項(xiàng)目窗體中嵌入MSComm通信控件之后,為了用該控件控制一個(gè)串口進(jìn)行通信操作,還必須在應(yīng)用程序中插入該控件。為此為程序的某個(gè)對(duì)話框插入MSComm控件,控件名為MSCOMM1,并為其添加兩個(gè)定時(shí)器控件(TimPeriodic和TimNonPeriodic)和一個(gè)命令按鈕控件CmdNonPeriodic 。通信控件用于訪問(wèn)串口、發(fā)送和接收數(shù)據(jù);周期定時(shí)器控件(TimPeriodic)用于控制每秒由計(jì)算機(jī)向各數(shù)據(jù)點(diǎn)發(fā)送周期性命令;命令按鈕控件與非周期定時(shí)器控件(TimNonPeriodic)用于發(fā)送非周期性命令。MicroMaster變頻器回送的狀態(tài)信息一幀位14個(gè)字節(jié)。為此,程序編制上采用事件驅(qū)動(dòng)的通信方式,串口每接受14個(gè)字符邊激活一個(gè)OnComm()事件,在OnComm()消息處理函數(shù)中加入相應(yīng)的處理代碼,用來(lái)讀取狀態(tài)字ZSW和HIW各位的狀態(tài)參數(shù),并做出相應(yīng)的處理,如顯示、報(bào)警等等。下面簡(jiǎn)要給出用事件驅(qū)動(dòng)方式讀出變頻器回送狀態(tài)字的程序源代碼。設(shè)RS-485的口地址為PC機(jī)的串口2的地址,波特率為9600bps 。

(1)窗體中各控件初始設(shè)置:TimPeriodic為1s,TimNonPeriodic為0.5s

Sub bbbb_Load()

Mscomm1.CommPort=2 ’選用COM2串行口

MsComm1.setting=”9600,N8,1” ’波特率為9600,無(wú)奇偶校驗(yàn),8位數(shù)據(jù)位,一位停止位

Mscomm1.bbbbbLen=0 ’bbbbb將讀取接收緩沖區(qū)的全部?jī)?nèi)容

Mscomm1.bbbbbLenSize=1024 ’設(shè)置接收緩沖區(qū)的字節(jié)長(zhǎng)度

Mscomm1.PortOpen=0 ’打開通信口

Mscomm1.InBufferCount=0 ’清除發(fā)送緩沖區(qū)數(shù)據(jù)

Mscomm1.OutBufferCount=0 ’清除接收緩沖區(qū)數(shù)據(jù)

TimPeriodic.intbbbb=1000 ’設(shè)置1s定時(shí)間隔,使遙測(cè)命令每隔1s發(fā)送1次

TimNonPeriodic.intbbbb=500 ’設(shè)置0.5s定時(shí)間隔,查詢命令按鈕是否處于激活狀態(tài)以確定是否發(fā)送周期性命令

CmdPressed=False ’命令按鈕為未激活狀態(tài)

DuringPeriodic=False ’周期命令數(shù)據(jù)傳輸尚未開始

DuringNonPeriodic=False ’非周期命令數(shù)據(jù)傳輸尚未開始

End Sub

(2)非周期性命令的發(fā)送:根據(jù)命令按鈕狀態(tài)及周期性命令數(shù)據(jù)傳輸狀態(tài),在TimNonPeriodic定時(shí)器的中斷程序中發(fā)送非周期性命令。

Sub CmdNonPeriodic_Click()

CmdPressed=True ’命令按鈕激活

End Sub

Sub TimNonperiodic_Timer()

If DuringPeriodic=True OR Cmdpressed=False Then Exit Sub ’如周期命令數(shù)據(jù)傳輸尚未結(jié)束或命令按鈕處于激活

狀態(tài),則退出發(fā)送非周期性命令程序。

CmdPressed=False ’命令按鈕恢復(fù)為未激活狀態(tài)

Call SendData(NonPeriodic_COMMAND) ’發(fā)送非周期性命令

Mscomm1.Rthreshold=R_NONPERIODIC_BYTE‘發(fā)送非周期性命令后,設(shè)置Rthreshold屬性,使主站接收所設(shè)定的字節(jié)數(shù)

后引發(fā)OnComm事件

End Sub

(3)TimPeriodic定時(shí)器程序:在TimPeriodic定時(shí)器的中斷程序中發(fā)送周期性命令。

Sub TimPeriodic_Timer()

If DuringNonPeriodic=True Then Exit Sub ’如非周期命令數(shù)據(jù)傳輸尚未結(jié)束,則退出發(fā)送非周期性命令程序。

DuringPeriodic=True ’設(shè)置周期命令數(shù)據(jù)傳輸狀態(tài)為正在進(jìn)行中

Call SendData(NonPeriodic_COMMAND) ’發(fā)送非周期性命令

Mscomm1.Rthreshold=R_PERIODIC_BYTE’設(shè)置Rthreshold屬性,使主站接收R_PERIODIC_BYTE個(gè)字節(jié),引發(fā)OnComm事件

End Sub

(4)OnComm事件程序:根據(jù)Rthreshold屬性設(shè)置值,當(dāng)接收緩存區(qū)內(nèi)接收到相應(yīng)字節(jié)的字符時(shí),引發(fā)OnComm事件,在中斷程序中接收數(shù)據(jù)。

Sub Mscomm1_OnComm()

Select Case Mscomm1.commEvent ’在此插入處理各種不同錯(cuò)誤或事件的代碼

Case MSCOMM_EV_RECEIVE

Receivebbbbbb$=Mscomm1.bbbbb

Select Case Mscomm1.Rthreshold

Case R_PERIODIC_BYTE‘周期性命令的應(yīng)答數(shù)據(jù)

Call DisposeDate(NonPeriodic_CommAND) ’處理接收數(shù)據(jù)

DuringPeriodic=False ’設(shè)置周期命令數(shù)據(jù)傳輸狀態(tài)為結(jié)束

Case R_NONPERIODIC_BYTE ’非周期性命令的應(yīng)答數(shù)據(jù)

Call DisposeData(NonPeriodic_CommAND) ’處理接收數(shù)據(jù)

DuringNonPeriodic=False ’設(shè)置非周期命令數(shù)據(jù)傳輸狀態(tài)結(jié)束

End Select

End Select

End Sub

上述程序中,因MicroMaster變頻器回送的狀態(tài)信息一幀為14個(gè)字節(jié),所以R_NONPERIODIC_BYTE和R_PERIODIC_BYTE 。對(duì)于變頻器回送的狀態(tài)信息則利用bbbbbbs的消息處理函數(shù)OnComm()進(jìn)行處理。在消息處理函數(shù)中,將變頻器回送的14個(gè)狀態(tài)字一次全部讀到所定義的變量參數(shù)中,然后程序再?gòu)淖兞繀?shù)中分別讀取各狀態(tài)字,在屏幕上顯示、判斷并報(bào)警。

五、結(jié)束語(yǔ)

本文利用VB6.0下的ActiveX控件和MicroMaster變頻器RS-485的串行通信功能,實(shí)現(xiàn)了在bbbbbbs09環(huán)境下用單臺(tái)PC機(jī)控制多臺(tái)變頻器的任務(wù),并能實(shí)時(shí)檢測(cè)各變頻器的運(yùn)行狀態(tài)。整個(gè)控制系統(tǒng)靈活方便,具有很大的實(shí)用性。

作者:未知 點(diǎn)擊:643次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:Windows98下單臺(tái)PC與多臺(tái)變頻器的串行通信控制
* 由于無(wú)法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《Windows98下單臺(tái)PC與多臺(tái)變頻器的串行通信控制》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊(cè)
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個(gè)人求購(gòu)

張俊杰 【求購(gòu)】  縫紉線自動(dòng)...  2025-12-25
易賽群 【求購(gòu)】  NANOC...  2025-12-25
張經(jīng)理 【求購(gòu)】  浪涌保護(hù)器  2025-12-25
陳蓮 【求購(gòu)】  日本住友閥  2025-12-24
簡(jiǎn) 【求購(gòu)】  氣動(dòng)扳手  2025-12-24
倪高純 【求購(gòu)】  超聲波液位...  2025-12-24
戴先生 【求購(gòu)】  美孚s-2...  2025-12-23
李先生 【求購(gòu)】  一體化消防...  2025-12-22
VIP公司推薦