久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

三菱PLC與PC上位機(jī)VB通訊

時(shí)間:2019-05-14 23:06:34下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《三菱PLC與PC上位機(jī)VB通訊》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《三菱PLC與PC上位機(jī)VB通訊》。

第一篇:三菱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é)議)和無(wú)協(xié)議通訊(RS指令)時(shí)均須對(duì)通訊格式(D8120)進(jìn)行設(shè)定。其中包含有波特率、數(shù)據(jù)長(zhǎng)度、奇偶校驗(yàn)、停止位和協(xié)議格式等。在修改了D8120的設(shè)置后,確保關(guān)掉PLC的電源,然后再打開(kāi)。

此外,對(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,無(wú)標(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è)串行通信端口,不過(guò)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必須完全一樣,彼此才能順利地通信,否則雙方將無(wú)法正確接收到彼此所傳輸?shù)男盘?hào)。所以,該屬性的設(shè)置必須和三菱PLC中D8120的相關(guān)設(shè)置保持一致。在這里,統(tǒng)一采用“9600,e,7,2”的設(shè)定。

三菱PLC通訊

3. PortOpen屬性

PortOpen屬性用于設(shè)置通信連接端口的狀態(tài)。在使用串行端口之前必須先將要使用的串行端口打開(kā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 '打開(kāi)端口 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等通信控制字符是不可見(jiàn)字符,所以先用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ā)來(lái)的指令,后一種表示可編程控制器未正確接收到從計(jì)算機(jī)發(fā)來(lái)的指令。

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ù)量的字符,可指定開(kāi)始獲取的位置和長(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é)議)和無(wú)協(xié)議通訊(RS指令)時(shí)均須對(duì)通訊格式(D8120)進(jìn)行設(shè)定。其中包含有波特率、數(shù)據(jù)長(zhǎng)度、奇偶校驗(yàn)、停止位和協(xié)議格式等。在修改了D8120的設(shè)置后,確保關(guān)掉PLC的電源,然后再打開(kāi)。在這里對(duì)D8120采用下述設(shè)置: b15 b0 0000 0100 1000 1111 0 4 8 F 即數(shù)據(jù)長(zhǎng)度為8位,偶校驗(yàn),2位停止位,波特率為9600bps,無(wú)標(biāo)題符和終結(jié)符,沒(méi)有添加和校驗(yàn)碼,采用無(wú)協(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

'打開(kāi)端口 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è)置成使用無(wú)硬件握手方式,即(b12,b11,b10)=(0,0,0)。根據(jù)儀表說(shuō)明書上對(duì)通訊的要求,設(shè)置如下:

b15

b0 0000 0000 1000 0110

0 0 8 6 2. 根據(jù)儀表說(shuō)明書所述,該種儀表有兩種工作方式:連續(xù)發(fā)送和指令狀態(tài)。這里設(shè)置成指令狀態(tài),即儀表根據(jù)發(fā)來(lái)的指令返回相應(yīng)的數(shù)據(jù)。在此使用READ指令,根據(jù)指令協(xié)議,輸入的指令必須以確認(rèn)。所以READ指令的ASCII輸入為“52,45,41,44,0D,0A”一共6個(gè)字符,將RS指令的發(fā)送數(shù)據(jù)點(diǎn)數(shù)設(shè)為k6。另外返回?cái)?shù)據(jù)的格式是18個(gè)字符,所以將RS指令的接收數(shù)據(jù)點(diǎn)數(shù)設(shè)為k18。通過(guò)

注:發(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é)出版社

第二篇:三菱PLC通訊

三菱PLC通訊 資料整理——李永彬

三菱PLC與上位機(jī)通訊

三菱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é)議)和無(wú)協(xié)議通訊(RS指令)時(shí)均須對(duì)通訊格式(D8120)進(jìn)行設(shè)定。其中包含有波特率、數(shù)據(jù)長(zhǎng)度、奇偶校驗(yàn)、停止位和協(xié)議格式等。在修改了D8120的設(shè)置后,確保關(guān)掉PLC的電源,然后再打開(kāi)。

此外,對(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,無(wú)標(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è)串行通信端口,不過(guò)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必須完全一樣,彼此才能順利地通信,否則雙方將無(wú)法正確接收到彼此所傳輸?shù)男盘?hào)。所以,該屬性的設(shè)置必須和三菱PLC中D8120的相關(guān)設(shè)置保持一致。在這里,統(tǒng)一采用“9600,e,7,2”的設(shè)定。3. PortOpen屬性

PortOpen屬性用于設(shè)置通信連接端口的狀態(tài)。在使用串行端口之前必須先將要使用的串行端口打開(kāi)。在上位機(jī)程序中應(yīng)進(jìn)行如下設(shè)定: Private Sub Form_Load()'窗體載入事件 MSComm1.CommPort = 1 '選擇端口號(hào)

三菱PLC通訊 資料整理——李永彬MSComm1.Settings = “9600,e,7,2” '設(shè)置端口屬性 MSComm1.PortOpen = True '打開(kāi)端口 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等通信控制字符是不可見(jiàn)字符,所以先用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ā)來(lái)的指令,后一種表示可編程控制器未正確接收到從計(jì)算機(jī)發(fā)來(lái)的指令。

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ù)量的字符,可指定開(kāi)始獲取的位置和長(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ù)值表示的字符串。

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é)議)和無(wú)協(xié)議通訊(RS指令)時(shí)均須對(duì)通訊格式(D8120)進(jìn)行設(shè)定。其中包含有波特率、數(shù)據(jù)長(zhǎng)度、奇偶校驗(yàn)、停止位和協(xié)議格式等。在修改了D8120的設(shè)置后,確保關(guān)掉PLC的電源,然后再打開(kāi)。在這里對(duì)D8120采用下述設(shè)置: b15 b0

三菱PLC通訊 資料整理——李永彬0000 0100 1000 1111 0 4 8 F 即數(shù)據(jù)長(zhǎng)度為8位,偶校驗(yàn),2位停止位,波特率為9600bps,無(wú)標(biāo)題符和終結(jié)符,沒(méi)有添加和校驗(yàn)碼,采用無(wú)協(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 End Sub Private Sub Form_Load()

'窗體載入事件 MSComm1.CommPort = 1

'選擇端口號(hào) MSComm1.Settings = ”9600,e,8,2“ '設(shè)置端口屬性 MSComm1.PortOpen = True

'打開(kāi)端口 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è)置成使用無(wú)硬件握手方式,即(b12,b11,b10)=(0,0,0)。根據(jù)儀表說(shuō)明書上對(duì)通訊的要求,設(shè)置如下: b15

b0

0000 0000 1000 0110

0 0 8 6 2. 根據(jù)儀表說(shuō)明書所述,該種儀表有兩種工作方式:連續(xù)發(fā)送和指令狀態(tài)。這里設(shè)置成指令狀態(tài),即儀表根據(jù)發(fā)來(lái)的指令返回相應(yīng)的數(shù)據(jù)。在此使用READ指令,根據(jù)指令協(xié)議,輸入的指令必須以確認(rèn)。所以READ指令的ASCII輸入為“52,45,41,44,0D,0A”一共6個(gè)字符,將RS指令的發(fā)送數(shù)據(jù)點(diǎn)數(shù)設(shè)為k6。另外返回?cái)?shù)據(jù)的格式是18個(gè)字符,所以將RS指令的接收數(shù)據(jù)點(diǎn)數(shù)設(shè)為k18。通過(guò)

注:發(fā)送數(shù)據(jù)點(diǎn)數(shù)和接收數(shù)據(jù)點(diǎn)數(shù)必須按指令協(xié)議進(jìn)行設(shè)置,否則通訊不能正常進(jìn)行。PLC程序如下:

第三篇:VB與三菱PLC通信

VB與三菱PLC通信

VB源代碼下載

http://www.tmdps.cn/download.action?t=40&k=MTQzOTcxMTM=&pcode=LCw1NTkwMzYsNTU5MDM2&rPLC以卓越的可靠性和方便的可編程性廣泛應(yīng)用于工業(yè)控制領(lǐng)域。實(shí)現(xiàn)PC機(jī)與PLC通信的目示、動(dòng)態(tài)數(shù)據(jù)畫面顯示、報(bào)表顯示、窗口技術(shù)等多種功能,為PLC提供良好的人機(jī)界面。本文詳在Windows環(huán)境下,使用VB6.0開(kāi)發(fā)通信程序,實(shí)現(xiàn)了PC機(jī)與FX系列PLC之間的協(xié)議進(jìn)行了詳細(xì)的介紹,并以VB為開(kāi)發(fā)工具實(shí)現(xiàn)了PC機(jī)與FX系列PLC的串行通信。1 前言

PLC以卓越的可靠性和方便的可編程性廣泛應(yīng)用于工業(yè)控制領(lǐng)域。實(shí)現(xiàn)PC機(jī)與PLC通信的目示、動(dòng)態(tài)數(shù)據(jù)畫面顯示、報(bào)表顯示、窗口技術(shù)等多種功能,為PLC提供良好的人機(jī)界面。本文詳在Windows環(huán)境下,使用VB6.0開(kāi)發(fā)通信程序,實(shí)現(xiàn)了PC機(jī)與FX系列PLC之間的2 PC機(jī)與PLC實(shí)現(xiàn)通信的條件

帶異步通信適配器的PC機(jī)與PLC只有滿足如下條件,才能互聯(lián)通信:

(1)帶有異步通信接口的PLC才能與帶異步通信適配器的PC機(jī)互聯(lián)。還要求雙方采用的總線元”變換之后才能互聯(lián)。

(2)雙方的初始化,使波特率、數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗(yàn)都相同。

(3)要對(duì)PLC的通信協(xié)議分析清楚,嚴(yán)格地按照協(xié)議的規(guī)定及幀格式編寫PC機(jī)的通信程序。程。

3 PC機(jī)及與FX系列PLC的串行通訊 3.1 硬件連接

PC機(jī)與FX系列PLC不能直接連接,要經(jīng)過(guò)FX-232AW單元進(jìn)行RS232C/RS-接關(guān)系:

3.2 FX系列PLC的通信協(xié)議

在PC機(jī)中必須依據(jù)互聯(lián)的PLC的通信協(xié)議來(lái)編寫通信程序,因此先介紹FX系列PLC的通信(1)數(shù)據(jù)格式

FX系列PLC采用異步格式,由1位起始位、7位數(shù)據(jù)位、1位偶校驗(yàn)位及1位停止位組成,波I碼。(2)通信命令

FX系列PLC有4個(gè)通信命令,它們是讀命令、寫命令、強(qiáng)制通命令、強(qiáng)制斷命令,如下表所示M—輔助繼電器;S—狀態(tài)元件;T—定時(shí)器;C—計(jì)數(shù)器;D—數(shù)據(jù)寄存器。(3)通信控制字符

FX系列PLC采用面向字符的傳輸規(guī)程,用到5個(gè)通信控制字符,如下表所示。*當(dāng)PLC對(duì)PC機(jī)發(fā)來(lái)的ENQ不理解時(shí),用NAK回答。(4)報(bào)文格式

PC機(jī)向PLC發(fā)送的報(bào)文格式如下:

其中STX為開(kāi)始標(biāo)志:02H;ETX為結(jié)束標(biāo)志:03H;CMD為命令的ASCII碼;S字節(jié)求累加和,溢出不計(jì)。由于每字節(jié)十六進(jìn)制數(shù)變?yōu)閮勺止?jié)ASCII代碼,故校驗(yàn)和為SUM數(shù)據(jù)段格式與含義如下:

*寫命令的數(shù)據(jù)段有數(shù)據(jù),讀命令的數(shù)據(jù)段則無(wú)數(shù)據(jù)。讀/寫字節(jié)數(shù)為01H~40H(1~64)個(gè)。PLC向PC機(jī)發(fā)送的應(yīng)答報(bào)文格式如下:

*對(duì)讀命令的應(yīng)答報(bào)文數(shù)據(jù)段為要讀取的數(shù)據(jù),一個(gè)數(shù)據(jù)占兩個(gè)字節(jié),分上位下位: 對(duì)寫命令的應(yīng)答報(bào)文無(wú)數(shù)據(jù)段,而用ACK及NAK作為應(yīng)答內(nèi)容。(5)傳輸過(guò)程

PC機(jī)與FX系列PLC之間采用應(yīng)答方式通信,傳輸出錯(cuò)則組織重發(fā)。其傳輸過(guò)程如下:

PLC根據(jù)PC機(jī)的命令,在每個(gè)循環(huán)掃描結(jié)束處的END語(yǔ)句后組織自動(dòng)應(yīng)答,無(wú)需用戶在PL4 利用VB6.0編寫通信程序

下面以一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明編寫通信程序的要點(diǎn)。假設(shè)PC機(jī)要求從PLC中讀入從D123開(kāi)4),其傳輸應(yīng)答過(guò)程及報(bào)文如下(圖略可向作者索取):

命令報(bào)文中10F6H為D123的地址,04H表示要讀入4個(gè)字節(jié)的數(shù)據(jù)。校驗(yàn)和SUM=3+30H+34H+

03H=174H,溢出部分不計(jì),故SUMH為'7',SUML為‘4’,相應(yīng)的ASCII中4個(gè)字節(jié)的十六進(jìn)制數(shù),其相應(yīng)的ASCII碼為8?jìng)€(gè)字節(jié),故應(yīng)答報(bào)文長(zhǎng)度為12個(gè)字節(jié)。根據(jù)PC機(jī)與FX系列PLC的傳輸應(yīng)答過(guò)程編制出如下所示的通信程序流程圖略。

利用VB的MSComm控件,按照流程圖可以編寫如下通信程序?qū)崿F(xiàn)PC機(jī)與FX系列PLC之omm控件可以采用輪詢或事件驅(qū)動(dòng)的方法從端口獲取數(shù)據(jù)。在這個(gè)例子中使用了輪詢方法。(1)通信口初始化

Private Sub Initialize()MSComm1.CommPort = 1

MSComm1.Settings = ″9600,E,7,1″ MSComm1.InBufferSize = 1024 MSComm1.OutBufferSize = 1024 MSComm1.InputLen = 0

MSComm1.InputMode = comInputModeText MSComm1.Handshaking = comNone MSComm1.PortOpen = True End Sub(2)請(qǐng)求通信與確認(rèn)

Private Function MakeHandShaking()As Boolean Dim InPackage As String MSComm1.OutBufferCount = 0 MSComm1.InBufferCount = 0 MSComm1.Output = Chr(&H5)Do

DoEvents Loop Until MSComm1.InBufferCount = 1 InPackage = MSComm1.Input If InPackage = Chr(&H6)Then MakeHandShaking = True Else

MakeHandShaking = FalseEnd If End Function(3)發(fā)送命令報(bào)文

Private Sub SendFrame()Dim OutString As String MSComm1.OutBufferCount = 0 MSComm1.InBufferCount = 0

OutStrin = Chr(&H2)+″0″+″10F604″+Chr(&H3)+″74″MSComm1.Output = OutString End Sub(4)讀取應(yīng)答報(bào)文

Private Sub ReceiveFrame()Dim InString As String Do

DoEvents

Loop Until MSComm1.InBufferCount = 12 InString = MSComm1.Input End Sub 5 結(jié)束語(yǔ)

以本文所述機(jī)制編寫的通信程序已成功用于以FX2N型PLC作為主控制器的高層建筑玻璃幕墻現(xiàn)了PC機(jī)對(duì)PLC的監(jiān)視和控制。同時(shí),本程序?qū)Γ校脵C(jī)與其它型號(hào)PLC之間的通信也有一定下面是我自己寫的一個(gè)VB與三菱FX系列PLC通訊的軟件,如果想學(xué)習(xí)的可以下下來(lái)看看,下載地要源代碼的留下郵箱!有什么不懂得也可以給我留言。我會(huì)做出解答的。下載地址

http://www.tmdps.cn/download.action?t=40&k=MTMzNDg4MDg=&pcode=LCw1NTkwMzYsNTU5MDM2&r

第四篇:VB實(shí)現(xiàn)PC與歐姆龍PLC通訊的串口編程

Private Sub Form_Load()

Dim i As Integer'OPEN COM1

If ComTrue(1)= 0 Then

If ComOpen(1, 38400, 7, 1, 1, “sjh”)= 1 Then 'MsgBox(“已注冊(cè)”)'sjh為你的注冊(cè)賬號(hào)Call SetDelayNum(64)

End If

End If

jisu

jisu1

jisu2

End Sub

第五篇:51單片機(jī)與三菱PLC通訊實(shí)例

51單片機(jī)與三菱PLC無(wú)協(xié)議通訊成功

我用了兩個(gè)晚上的時(shí)間查閱一些資料,利用三菱PLC的擴(kuò)展RS485通訊板與其51單片機(jī)連接通訊,可寫PLC任意的地址。長(zhǎng)度可達(dá)1000米,看見(jiàn)網(wǎng)上寫的都很煩且對(duì)三菱和單片機(jī)不是很熟的朋友來(lái)說(shuō)有一定的閱讀難度,今天將它與大家分享。希望在此基礎(chǔ)上大家能擴(kuò)展出自己想要的功能,過(guò)些時(shí)間有空我在寫個(gè)半雙工的程序。硬件部分:

我用的是天祥單片機(jī)實(shí)驗(yàn)板,由于沒(méi)有RS485接口,我利用ADM485芯片自制了一個(gè)485接口與三菱PLC的擴(kuò)展RS485通訊如圖,但如果要進(jìn)行半雙工通訊,須將P3.0口到下載程序的RS232芯片的線斷開(kāi)可用一個(gè)跳線,用RS485的時(shí)候斷開(kāi)RS232,用RS232的時(shí)候插上跳線帽。硬件連接如圖

PLC程序:

通訊我用單片機(jī)做主機(jī)(只發(fā)送指令),PLC做從機(jī)(只接收指令),單工單向,以便初學(xué)著掌握。

格式:1位啟始,8位數(shù)據(jù),一位停止。所以PLC寄存器D8120:0C81.plc程序很簡(jiǎn)單不懂的可以看下三菱PLC的通訊手冊(cè)。如下圖:

三:?jiǎn)纹瑱C(jī)程序:

#include

/*單片機(jī)的頭文件*/ unsigned char code tab[]={0x17,0xff};/*PLC輸出的Y點(diǎn)數(shù),PLC輸出Y燈0125678亮*/ sbit led=P1^1;

/*將RS485置為發(fā)送數(shù)據(jù)模式*/ unsigned char i;void init(){ SCON=0x50;

/*串口中斷開(kāi)*/ TMOD=0x20;

/*定時(shí)器設(shè)置*/

TH1=0xfd;

/*定時(shí)時(shí)間的高位*/ TL1=0xfd;

/*定時(shí)時(shí)間的低位,速度為9600BPS*/ TR1=1;

/*定時(shí)器開(kāi)*/ EA=1;

/*開(kāi)總中斷*/ TI=0;

/*復(fù)位串口中斷*/ led=1;

/*將RS485置為發(fā)送數(shù)據(jù)模式*/ } void main(){ init();

/*調(diào)用子程序*/ for(i=0;i<2;i++){ SBUF=tab[i];

/*將數(shù)據(jù)發(fā)送到串口*/ while(!TI);

/*等待串口數(shù)據(jù)發(fā)送結(jié)束*/ TI=0;

/*復(fù)位串口中斷*/ } } 四:注意點(diǎn)。

1:RS485的線不能接反,否則數(shù)據(jù)將不正確。

2:?jiǎn)纹瑱C(jī)的晶振要選擇11.0592MHZ,否則PLC接收到數(shù)據(jù)也不正確。

3:RS485芯片的電源不能接反,否則要燒壞芯片。

今天要去山東調(diào)試機(jī)器,現(xiàn)在正在高鐵上,剛好有空把這篇心得寫好,有錯(cuò)誤的地方還請(qǐng)大家指正,也希望有共同愛(ài)好的一起交流心得。

QQ:79814563 注明時(shí)工控交友

電話:***

姓名:黃輝 2011年12月17日 Saturday

下載三菱PLC與PC上位機(jī)VB通訊word格式文檔
下載三菱PLC與PC上位機(jī)VB通訊.doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    變頻器與上位機(jī)通訊故障的排除方法

    1 實(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ī)主要是控制變頻器的故......

    國(guó)產(chǎn)PLC 海為(Haiwell)PLC與三菱PLC進(jìn)行通訊

    Haiwell(海為)PLC與三菱PLC通訊介紹 山東大風(fēng)機(jī)電自動(dòng)化 王倫 概述:本文主要介紹了海為PLC與三菱FX2N系列進(jìn)行通訊的實(shí)驗(yàn)情況。 關(guān)鍵字:海為PLC FX2N 自由通訊 CRC校驗(yàn) 第一部分......

    PLC和PC機(jī)間的串行通信

    關(guān)鍵詞:RS-232串行通信 可編程控制器 自由端口模式 數(shù)據(jù)緩沖區(qū) HG-2003型溫升測(cè)控裝置是筆者與我國(guó)北京某科學(xué)研究聯(lián)聯(lián)合開(kāi)發(fā)的一套專門用于高壓晶閘管閥溫升檢測(cè)試驗(yàn)的測(cè)控......

    實(shí)驗(yàn)四單片機(jī)串行口與PC機(jī)通訊實(shí)驗(yàn)(寫寫幫推薦)

    實(shí)驗(yàn)四單片機(jī)串行口與PC機(jī)通訊實(shí)驗(yàn) 一.實(shí)驗(yàn)?zāi)康?1.掌握串行口工作方式的程序設(shè)計(jì),掌握單片機(jī)通訊的編制。 2.了解實(shí)現(xiàn)串行通訊的硬環(huán)境,數(shù)據(jù)格式的協(xié)議,數(shù)據(jù)交換的協(xié)議。 3.了解......

    家庭監(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;......

    三菱PLC與變頻器連接問(wèn)題

    三菱PLC 應(yīng)用 如何判斷用PNP 還是NPN 的個(gè)人工作心得 10~30VDC 接近開(kāi)關(guān)與PLC 連接時(shí),如何判斷用PNP 還是NPN 的個(gè)人工作心得: 對(duì)于PLC 的開(kāi)關(guān)量輸入回路。我個(gè)人感覺(jué)日本三菱......

    三菱PLC與變頻器連接問(wèn)題

    三菱PLC應(yīng)用如何判斷用PNP還是NPN的個(gè)人工作心得10~30VDC接近開(kāi)關(guān)與PLC連接時(shí),如何判斷用PNP還是NPN的個(gè)人工作心得:對(duì)于PLC的開(kāi)關(guān)量輸入回路。我個(gè)人感覺(jué)日本三菱的要好得多,......

    51單片機(jī)與PC機(jī)通信資料

    《專業(yè)綜合實(shí)習(xí)報(bào)告》 專業(yè):電子信息工程 年級(jí): 2013級(jí)指導(dǎo)教師:學(xué)生:目錄 一:實(shí)驗(yàn)項(xiàng)目名稱 二:前言 三:項(xiàng)目?jī)?nèi)容及要求 四:串口通信原理 五:設(shè)計(jì)思路 5.1虛擬串口的設(shè)置 5.2下位機(jī)......

主站蜘蛛池模板: 美女张开腿黄网站免费| 国产蜜芽尤物在线一区| 曰本丰满熟妇xxxx性| 欧美日韩不卡合集视频| 免费ā片在线观看| 国产精品毛片完整版视频| 人妻熟女一区二区aⅴ清水理纱| 欧美熟妇精品一区二区三区| 一区二区三区视频| 亚洲精品99久久久久中文字幕| 韩国三级中文字幕hd久久精品| 国产免费久久精品99re丫丫| 亚洲sss整片av在线播放| 免费人妻av无码专区| 樱花草在线社区www| 人妻丝袜无码专区视频网站| 亚洲最新版av无码中文字幕| 成熟丰满熟妇xxxxx丰满| 欧美黑人又粗又大xxx| 处破痛哭a√18成年片免费| 女性高爱潮有声视频| 成人无码www免费视频| 国产chinese男男gay视频网| 国产成人影院一区二区三区| 国产成人精品永久免费视频| 亚洲精品无码永久在线观看性色| 女人高潮内射99精品| 亚洲熟妇无码av不卡在线| 国产精品99久久久久久董美香| 日韩无码在钱中文字幕在钱视频| 初尝人妻少妇中文字幕| 人妻系列无码专区免费视频| 亚洲熟妇无码爱v在线观看| 国产在线观看免费观看| 欧美毛片无码又大又粗黑寡妇| 色噜噜狠狠一区二区三区果冻| 小受叫床高潮娇喘嗯啊mp3| 中文字幕人妻一区二区| 中文字幕日韩精品亚洲七区| 国产乱子夫妻xx黑人xyx真爽| 蜜桃视频一区二区三区在线观看|