第一篇:家庭監(jiān)護(hù)終端與手機(jī)、上位機(jī)及服務(wù)器通訊協(xié)議22
家庭監(jiān)護(hù)終端與手機(jī)或上位機(jī)通訊協(xié)議
1、手機(jī)或上位機(jī)發(fā)出的START指令
typedef struct {
unsigned char header;0xFF
unsi gned char header;0xFD
unsigned char serial[4];4個(gè)00
unsigned charchecksum;校驗(yàn)和
};
2、血氧儀與手機(jī)或上位機(jī)通訊協(xié)議
(1)、當(dāng)血氧儀收到Start指令后,將測(cè)量好數(shù)據(jù)向手機(jī)或上位機(jī)發(fā)送,波特率為9600,數(shù)據(jù)包格式如下:
typedef struct {
unsigned char header;0xFF
unsi gned char header;0xFC
unsigned char dev_type;0x01
unsigned char dev_serial[4];設(shè)備ID號(hào)
unsigned charreading0;血氧飽和度值
unsigned charreading1;脈率值
unsigned charchecksum;校驗(yàn)和
};
(2)、血氧儀連續(xù)發(fā)送5次數(shù)據(jù)后,上位機(jī)或POD向血氧儀發(fā)送關(guān)機(jī)指令。格式如
下:FFFA0A0A.3、血壓計(jì)與手機(jī)或上位機(jī)通訊協(xié)議
(1)、當(dāng)血壓計(jì)收到Start指令后,將測(cè)量好數(shù)據(jù)向手機(jī)或上位機(jī)發(fā)送,波特率為9600,數(shù)據(jù)包格式如下:
typedef struct {
unsigned char header;0xFF
unsi gned char header;0xFC
unsigned char dev_type;0x02
unsigned char dev_serial[4];設(shè)備ID號(hào)
unsigned charreading0;收縮壓
unsigned charreading1;舒張壓
unsigned charreading2;脈率值
unsigned charchecksum;校驗(yàn)和
};
(2)、當(dāng)上位機(jī)或POD收到血壓計(jì)發(fā)來的數(shù)據(jù)包后,向血氧儀發(fā)送一條關(guān)機(jī)指令。格式如下:FFFA0A0A。
4、上位機(jī)或POD發(fā)出的重發(fā)指令,格式如下:FFFB0B0B
上位機(jī)或POD發(fā)出的關(guān)機(jī)指令,格式如下:FFFA0A0A。
第二篇:三菱PLC與PC上位機(jī)VB通訊
三菱PLC通訊
三菱PLC與PC上位機(jī)VB通訊
三菱PLC:FX1N + FX1N-232-BD
FX2N + FX2N-232-BD 計(jì)算機(jī):Windows XP中文企業(yè)版 + Visual Basic 6.0中文企業(yè)版
Windows 98中文版 + Visual Basic 6.0 中文企業(yè)版
兩者之間連接使用的是FX-232CAB-1電纜線(2-3,3-2,4-6(8),5-5)
一.三菱PLC的設(shè)置
三菱FX PLC在進(jìn)行計(jì)算機(jī)鏈接(專用協(xié)議)和無協(xié)議通訊(RS指令)時(shí)均須對(duì)通訊格式(D8120)進(jìn)行設(shè)定。其中包含有波特率、數(shù)據(jù)長(zhǎng)度、奇偶校驗(yàn)、停止位和協(xié)議格式等。在修改了D8120的設(shè)置后,確保關(guān)掉PLC的電源,然后再打開。
此外,對(duì)于采用RS485形式1:N計(jì)算機(jī)鏈接的還必須對(duì)站點(diǎn)號(hào)(D8121)進(jìn)行設(shè)定。設(shè)定的范圍從00H到0FH(即0到15)。在這里對(duì)D8120采用下述設(shè)置: b15 b0 0110 1000 1000 1110 6 8 8 E 即數(shù)據(jù)長(zhǎng)度為7位,偶校驗(yàn),2位停止位,波特率為9600bps,無標(biāo)題符和終結(jié)符,采用計(jì)算機(jī)鏈接(RS-232C),自動(dòng)添加和校驗(yàn)碼,采用專用協(xié)議格式1。同時(shí)設(shè)定站號(hào)為0。具體設(shè)定如下所示:
FX PLC進(jìn)行計(jì)算機(jī)鏈接時(shí)可用的專用協(xié)議有兩種:格式1和格式4。兩種格式的差別在于是否在每一個(gè)塊上添加了CR + LF,其中添加了CR + LF的是格式4。在這里采用格式1。
二.上位機(jī)程序的編制
這里采用Microsoft公司的Visual Basic 6.0中文企業(yè)版編制上位機(jī)程序。Visual Basic中提供了一個(gè)名為MSComm的通信控件便于設(shè)計(jì)串行通信的程序。MSComm控件的主要屬性有: 1. CommPort屬性
CommPort屬性用于指定所要使用的串行端口的號(hào)碼。雖然Windows操作系統(tǒng)可以容納最多256個(gè)串行通信端口,不過Visual Basic的MSComm控件則僅限于16個(gè)端口。2. Settings屬性
Settings屬性用于設(shè)置初始化參數(shù)。以字符串的形式設(shè)置波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位等4個(gè)參數(shù)。其格式為“BBBB,P,D,S”,其中BBBB表示波特率,P表示奇偶校驗(yàn)位檢查方式,D表示數(shù)據(jù)位數(shù),S表示停止位數(shù)。一般情況下,歐美儀器習(xí)慣使用“9600,n,8,1”當(dāng)成設(shè)置值;而日本儀器則習(xí)慣使用“9600,e,7,2”作為設(shè)置值。Settings設(shè)置完成之后,所傳輸及接受的字符串便以此設(shè)置為準(zhǔn),使用RS-232通信的雙方,Settings必須完全一樣,彼此才能順利地通信,否則雙方將無法正確接收到彼此所傳輸?shù)男盘?hào)。所以,該屬性的設(shè)置必須和三菱PLC中D8120的相關(guān)設(shè)置保持一致。在這里,統(tǒng)一采用“9600,e,7,2”的設(shè)定。
三菱PLC通訊
3. PortOpen屬性
PortOpen屬性用于設(shè)置通信連接端口的狀態(tài)。在使用串行端口之前必須先將要使用的串行端口打開。在上位機(jī)程序中應(yīng)進(jìn)行如下設(shè)定: Private Sub Form_Load()'窗體載入事件 MSComm1.CommPort = 1 '選擇端口號(hào) MSComm1.Settings = “9600,e,7,2” '設(shè)置端口屬性 MSComm1.PortOpen = True '打開端口 End Sub 4. Output屬性
MSComm控件的Output屬性提供了發(fā)送的功能,當(dāng)從計(jì)算機(jī)向可編程控制器寫入數(shù)據(jù)或從可編程控制器讀取數(shù)據(jù)時(shí),上位機(jī)應(yīng)當(dāng)先發(fā)出以下格式(格式1)的指令字符串: ENQ 站號(hào) PC號(hào) 命令 消息等待時(shí)間 字符區(qū)域A 和校驗(yàn)代碼
其中站號(hào)為在D8121中的設(shè)定值,這里是:00,PC號(hào)對(duì)于FX系列為:FF。
因?yàn)镋NQ,ACK,NAK等通信控制字符是不可見字符,所以先用Chr函數(shù)對(duì)其進(jìn)行賦值: ENQ=Chr(5)ACK=Chr(6)NAK=Chr(&H15)然后在上位機(jī)程序中寫入以下代碼即可發(fā)出指令:
MSComm1.Output=ENQ &“00FF<命令><消息等待時(shí)間><字符區(qū)域A><和校驗(yàn)代碼>” 5. Input屬性
與Output屬性相反,Input屬性提供了接收數(shù)據(jù)的功能。它將對(duì)方傳到輸入緩沖區(qū)中的數(shù)據(jù)讀進(jìn)程序中,并清除緩沖區(qū)中已被讀取的數(shù)據(jù)。
a.如果是從計(jì)算機(jī)向可編程控制器寫入數(shù)據(jù)時(shí),接收到從可編程控制器返回的應(yīng)該是以下格式的字符串:
ACK 站號(hào) PC號(hào)
或者
NAK 站號(hào) PC號(hào) 錯(cuò)誤代碼
前一種表示可編程控制器已經(jīng)正確接收到從計(jì)算機(jī)發(fā)來的指令,后一種表示可編程控制器未正確接收到從計(jì)算機(jī)發(fā)來的指令。
b.如果是從計(jì)算機(jī)向可編程控制器讀取數(shù)據(jù)時(shí),接收到從可編程控制器返回的應(yīng)該是以下格式的字符串:
STX 站號(hào) PC號(hào) 字符區(qū)域B ETX 和校驗(yàn)代碼 或者 NAK 站號(hào) PC號(hào) 錯(cuò)誤代碼
如果要連續(xù)讀取數(shù)據(jù)可以利用Timer控件。將Output和Input放在Timer控件的Timer事件中即可。程序會(huì)以Timer控件的Interval屬性中設(shè)置的間隔去發(fā)送指令和接收數(shù)據(jù)。對(duì)于MSComm控件的其他一些屬性使用VB的默認(rèn)值即可。
在串行通信傳輸?shù)膽?yīng)用中,經(jīng)常使用的Visual Basic中的字符串處理函數(shù)如下: Chr函數(shù):返回含有特定ANSI或DBCS字符碼的字符串。Asc函數(shù):返回字符串第一個(gè)字符的ANSI或DBCS字符碼。
Len函數(shù):返回以字符數(shù)為單位的字符串長(zhǎng)度。
Mid函數(shù):取得字符串中特定數(shù)量的字符,可指定開始獲取的位置和長(zhǎng)度。Left函數(shù):取得字符串的左邊固定字符數(shù)的字符串。
Right函數(shù):取得字符串的右邊固定字符數(shù)的字符串。
Val函數(shù):把字符串轉(zhuǎn)換為數(shù)值,可以將8進(jìn)制或16進(jìn)制的字符串轉(zhuǎn)換為10進(jìn)制。Hex函數(shù):返回以十六進(jìn)制數(shù)值表示的字符串。
三菱PLC通訊
RS指令應(yīng)用一
三菱PLC與計(jì)算機(jī)利用RS指令進(jìn)行通訊(通訊手冊(cè)9-14例)三菱PLC:FX1N + FX1N-232-BD 計(jì)算機(jī):Windows XP中文企業(yè)版 + Visual Basic 6.0中文企業(yè)版
Windows 98中文版 + Visual Basic 6.0中文企業(yè)版
兩者之間連接使用的是FX-232CAB-1電纜線(2-3,3-2,4-6(8),5-5)
一.三菱PLC的設(shè)置
三菱FX PLC在進(jìn)行計(jì)算機(jī)鏈接(專用協(xié)議)和無協(xié)議通訊(RS指令)時(shí)均須對(duì)通訊格式(D8120)進(jìn)行設(shè)定。其中包含有波特率、數(shù)據(jù)長(zhǎng)度、奇偶校驗(yàn)、停止位和協(xié)議格式等。在修改了D8120的設(shè)置后,確保關(guān)掉PLC的電源,然后再打開。在這里對(duì)D8120采用下述設(shè)置: b15 b0 0000 0100 1000 1111 0 4 8 F 即數(shù)據(jù)長(zhǎng)度為8位,偶校驗(yàn),2位停止位,波特率為9600bps,無標(biāo)題符和終結(jié)符,沒有添加和校驗(yàn)碼,采用無協(xié)議。PLC程序如下:
二.上位機(jī)程序的編制
完整程序代碼及注釋如下:
Private Sub cmd1_Click()
'發(fā)送按鈕
lbl1.Caption = “" If txt1.Text = ”“ Then
'若發(fā)送數(shù)據(jù)欄中未鍵入指令則提示鍵入指令 lbl1.Caption = ”Please input data“ Else MSComm1.Output = txt1.Text
'發(fā)送指令 Timer1.Enabled = True
'觸發(fā)延時(shí)接收 End If
三菱PLC通訊
End Sub Private Sub Form_Load()
'窗體載入事件 MSComm1.CommPort = 1
'選擇端口號(hào) MSComm1.Settings = ”9600,e,8,2“ '設(shè)置端口屬性 MSComm1.PortOpen = True
'打開端口 End Sub
Private Sub Timer1_Timer()
'延時(shí)500ms接收 NAK = Chr(&H15)If MSComm1.InBufferCount > 0 Then txt2.Text = ”“ a = MSComm1.Input txt2.Text = a
'在接收數(shù)據(jù)欄中顯示接收到的數(shù)據(jù) Else lbl1.Caption = ”No response" End If Timer1.Enabled = False End Sub
三菱PLC通訊
RS指令應(yīng)用二
三菱PLC與儀表之間通訊
三菱PLC:FX1N + FX1N-232-BD 儀表(稱重器)
兩者之間連線該儀表僅提供3線式的簡(jiǎn)化RS-232C口,即只有:RXD,TXD和GND,于是采用2-3,3-2,5-5的三線接法。
1. 對(duì)D8120進(jìn)行設(shè)置并使其與儀表中的設(shè)置一致,對(duì)其中的控制線設(shè)置成使用無硬件握手方式,即(b12,b11,b10)=(0,0,0)。根據(jù)儀表說明書上對(duì)通訊的要求,設(shè)置如下:
b15
b0 0000 0000 1000 0110
0 0 8 6 2. 根據(jù)儀表說明書所述,該種儀表有兩種工作方式:連續(xù)發(fā)送和指令狀態(tài)。這里設(shè)置成指令狀態(tài),即儀表根據(jù)發(fā)來的指令返回相應(yīng)的數(shù)據(jù)。在此使用READ指令,根據(jù)指令協(xié)議,輸入的指令必須以
注:發(fā)送數(shù)據(jù)點(diǎn)數(shù)和接收數(shù)據(jù)點(diǎn)數(shù)必須按指令協(xié)議進(jìn)行設(shè)置,否則通訊不能正常進(jìn)行。PLC程序如下:
三菱PLC通訊
參考資料
1.三菱FX通訊用戶手冊(cè)(RS-232C,RS485)2.《Visual Basic與RS-232串行通信控制(最新版)》清華大學(xué)出版社
第三篇:變頻器與上位機(jī)通訊故障的排除方法
實(shí)例一
(1)故障現(xiàn)象:客戶打技術(shù)服務(wù)電話報(bào)障:某工廠一車間40臺(tái)22kw風(fēng)機(jī)做節(jié)能改造,每臺(tái)變頻器都配有一個(gè)上位機(jī)ddc模塊進(jìn)行通訊控制(加拿大進(jìn)口)。上位 機(jī)主要是控制變頻器的故障報(bào)警、過濾網(wǎng)報(bào)警、頻率、啟停、溫度等。用戶反映接線都正常,與上位機(jī)脫開時(shí)能正常運(yùn)行,當(dāng)與上位機(jī)聯(lián)機(jī)控制時(shí),出現(xiàn)上位機(jī)給變 頻器停止指令時(shí)不能停機(jī)。
(2)故障分析與判斷:到現(xiàn)場(chǎng)檢測(cè)系統(tǒng),故障果真如客戶所述。查看其上位機(jī)ddc模塊的說明書,發(fā)現(xiàn)ddc模塊的干接點(diǎn)是晶體管輸出,輸出電壓是直流24v,而變頻器只接收無源信號(hào)或開關(guān)信號(hào),所以才會(huì)出現(xiàn)上面的故障現(xiàn)象。
(3)故障排除:在ddc模塊的信號(hào)輸出端加一個(gè)直流24v繼電器,就解決了此問題。
實(shí)例二
(1)故障現(xiàn)象:用戶電話報(bào)障說:“變頻控制系統(tǒng)不連上位機(jī)時(shí),變頻器能運(yùn)行,但只要與上位機(jī)相聯(lián)變頻器就不能運(yùn)行?!?/p>
(2)故障分析與判斷:根據(jù)經(jīng)驗(yàn)分析,上位機(jī)給出運(yùn)行信號(hào)了,但變頻器不接收,用表測(cè)量上位機(jī)也有輸出,因此判斷是線路故障引起的不正常,指導(dǎo)用戶技術(shù)員把線路再仔細(xì)的檢查一遍。
(3)故障排除:后來用戶打電話反饋來說:“是一路控制線沒接牢靠,接好后故障被消除?!?/p>
實(shí)例三
(1)故障現(xiàn)象:一經(jīng)銷商的直接用戶有一臺(tái)倫茨5.5kw的變頻器老跳故障。變頻器發(fā)出去檢修了兩次都沒有查出問題,拿回公司安裝上去就是不能用,故障依然存在。
(2)故障分析與判斷:到現(xiàn)場(chǎng)查看情況是:這臺(tái)設(shè)備所有的變頻器都是與上位機(jī)通訊控制,控制線路比較多,現(xiàn)場(chǎng)環(huán)境溫度也很高,設(shè)備用了好幾年了也沒維護(hù)過。根據(jù) 這幾點(diǎn)因素,懷疑是線路有短路或開路現(xiàn)象。先把有故障變頻器的所有控制線路拆下、電機(jī)線也拆下,空載運(yùn)行變頻器;這時(shí)運(yùn)行變頻器很正常,接上電機(jī)后運(yùn)行變 頻器也很正常,但接上控制線就報(bào)故障保護(hù)了,到這一步心里肯定就有底了。
(3)故障排除:用表測(cè)量所有控制線路,最后發(fā)現(xiàn)有兩條控制線老化短路,其它的控制線也有不同程度的老化,只是沒有這么嚴(yán)重,把所有控制線換掉后,設(shè)備運(yùn)行正常。
實(shí)例四
(1)故障現(xiàn)象:用戶反映數(shù)控車床上的觸摸屏與變頻器聯(lián)機(jī)時(shí)產(chǎn)生干擾,車床正常運(yùn)行后,觸摸屏經(jīng)?;ㄆ粱蜃兂伤{(lán)屏,看不到數(shù)據(jù),只要重新斷電再送電給系統(tǒng),故障就沒有了,設(shè)備運(yùn)行幾分鐘后故障又開始出現(xiàn),用戶要求技術(shù)支持,現(xiàn)場(chǎng)處理。
(2)故障分析:到現(xiàn)場(chǎng)后,發(fā)現(xiàn)變頻器是由觸摸屏控制,檢查變頻器配線、外部控制線路、設(shè)備都正常,換上一臺(tái)變頻器后故障依然存在。后來把控制線換成屏蔽線,降 低變頻器載波頻率,故障還是沒有得到解決。最后就只有從觸摸屏上入手,把觸摸屏上的電源線扒掉再重新插上,故障就沒有了。幾分鐘后又出現(xiàn)故障,把觸摸屏上 所有信號(hào)線插頭都扒掉,故障依然存在。遇到這種事都不知如何下手了。
(3)故障排除:這時(shí)我突然想到漏檢了觸摸屏外殼的接地線,當(dāng)把接地線拆下來,設(shè)備正常運(yùn)行了幾小時(shí)都沒有出現(xiàn)故障。經(jīng)測(cè)量是因?yàn)榻拥夭涣家鸬母蓴_,接地電阻比較大引起。
艾馳商城是國(guó)內(nèi)最專業(yè)的MRO工業(yè)品網(wǎng)購(gòu)平臺(tái),正品現(xiàn)貨、優(yōu)勢(shì)價(jià)格、迅捷配送,是一站式采購(gòu)的工業(yè)品商城!具有 10年工業(yè)用品電子商務(wù)領(lǐng)域研究,以強(qiáng)大的信息通道建設(shè)的優(yōu)勢(shì),以及依托線下貿(mào)易交易市場(chǎng)在工業(yè)用品行業(yè)上游供應(yīng)鏈的整合能力,為廣大的用戶提供了傳感 器、圖爾克傳感器、變頻器、斷路器、繼電器、PLC、工控機(jī)、儀器儀表、氣缸、五金工具、伺服電機(jī)、勞保用品等一系列自動(dòng)化的工控產(chǎn)品。
如需進(jìn)一步了解相關(guān)變頻器產(chǎn)品的選型,報(bào)價(jià),采購(gòu),參數(shù),圖片,批發(fā)等信息,請(qǐng)關(guān)注艾馳商城004km.cn。