MSComm實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC串行通信編程的研究與應(yīng)用
計(jì)算機(jī)通信論文計(jì)算機(jī)算法論文:
基于VB通信控件MSComm實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC串行通信編程的研究與應(yīng)用
摘要:主要闡述了如何在VB(Visual Basic)編程環(huán)境下利用MSComm通信控件實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC進(jìn)行串行通信的編程技術(shù)。
關(guān)鍵詞:MSComm控件;串行通信
0引言
計(jì)算機(jī)串行通信是計(jì)算機(jī)與控制設(shè)備(PLC)進(jìn)行數(shù)據(jù)傳送的一種通信方式,也是實(shí)現(xiàn)工業(yè)自動(dòng)控制經(jīng)常用到的通信模式。每一種通信方式都嚴(yán)格約定了與其對(duì)應(yīng)的通信協(xié)議。要確保計(jì)算機(jī)與P L C之間能正常通信,就必須遵照PLC通信協(xié)議編寫通信程序。本文將圍繞如何使用VisualBasic(簡(jiǎn)稱VB)的MSComm通信控件編寫計(jì)算機(jī)與歐姆龍PLC串行通信程序進(jìn)行闡述。
1串行通信
串行通信在工業(yè)系統(tǒng)控制的范疇中一直占據(jù)著極其重要的地位,串行端口(RS-232)是計(jì)算機(jī)上的標(biāo)準(zhǔn)配置,常用于連接調(diào)制解調(diào)器來(lái)傳輸數(shù)據(jù),在計(jì)算機(jī)的硬件設(shè)備管理器中可以看到,定義為COM1、COM2等。常用的串行通信方式有兩種,分別是RS-232和RS-485,本文以RS-232方式為例進(jìn)行介紹。
2 VB集成開發(fā)環(huán)境中MSComm通信控件的使用與設(shè)置
2.1 Visual Basic集成開發(fā)環(huán)境
V B采用了面向?qū)ο蟮某绦蛟O(shè)計(jì)思想。它的基本思路是把復(fù)雜的程序設(shè)計(jì)問題分解為一個(gè)個(gè)能夠完成獨(dú)立功能的相對(duì)簡(jiǎn)單的對(duì)象集合,所謂“對(duì)象”就是一個(gè)可操作的實(shí)體,如窗體、窗體中的命令按鈕、標(biāo)簽、文本框等。面向?qū)ο蟮木幊叹秃孟翊罘e木一樣,程序員可根據(jù)程序和界面設(shè)計(jì)要求,直接在屏幕上“畫\"出窗口、菜單、按鈕等不同類型的對(duì)象,并為每個(gè)對(duì)象設(shè)置屬性。
2.2串行通信控件MSComm的使用和設(shè)置
VB提供了支持串行通信的可編程組件MSComm,用戶只需要將其加載到應(yīng)用程序中,對(duì)其進(jìn)行簡(jiǎn)單的屬性設(shè)置即“可使用。現(xiàn)將控件的加載及屬性設(shè)置方法進(jìn)行介紹。
2.2.1將MSComm控件加載到應(yīng)用程序中
在VB集成開發(fā)環(huán)境(IDE)中選擇“工程”選項(xiàng)卡中的“部件”子菜單進(jìn)入控件選擇頁(yè)面。
在控件選擇頁(yè)面中選上Microsoft Comm Cotrol 6.0控件加載項(xiàng),單擊“確定”按鈕完成MSComm控件的加載。
當(dāng)完成MSComm控件的加載后,在IDE中的常規(guī)控件欄即可看到MSComm控件,此時(shí)就可使用此控件了。
2.2.2 MSComm控件屬性設(shè)置
當(dāng)應(yīng)用程序成功添加MSComm控件后,就可在其屬性設(shè)置頁(yè)面完成其屬性的設(shè)置,如圖4所示。在一般的串行通信應(yīng)用程序中只需要對(duì)MSComm控件的如下幾個(gè)屬性進(jìn)行設(shè)置。
CommPort:通信程序使用的串口序號(hào),根據(jù)計(jì)算機(jī)的串口硬件配置進(jìn)行選擇,可以為1、2等。
Settings:屬性設(shè)置字符串,屬性有:波特率、奇偶校驗(yàn)、字節(jié)數(shù)據(jù)位數(shù)、字節(jié)停止位數(shù)??梢詾?600、e、7、2。也可在程序中動(dòng)態(tài)設(shè)置,屬性設(shè)置程序代碼如下:
frmMain.MSComm1.CommPort=1
frmMain.MSComm1.Settings=“9600,e,7,2”
3 PLC通信數(shù)據(jù)幀介紹
計(jì)算機(jī)與P L C通信時(shí),按應(yīng)答方式進(jìn)行。由計(jì)算機(jī)發(fā)給PLC一組ASCII碼字符數(shù)據(jù),這一組數(shù)據(jù)成為命令幀。P L C對(duì)收到的命令幀進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果返回給計(jì)算機(jī),P L C返回給計(jì)算機(jī)的這一組數(shù)據(jù)稱為響應(yīng)幀,只有當(dāng)校驗(yàn)正確時(shí)P L C才按照命令執(zhí)行。計(jì)算機(jī)和P L C通信時(shí),PLC是被動(dòng)的,必須先由計(jì)算機(jī)給PLC發(fā)出命令幀,PLC再給計(jì)算機(jī)發(fā)出響應(yīng)幀,每幀最多由1 3 1個(gè)字符組成。下面將命令幀與響應(yīng)幀的組成結(jié)構(gòu)介紹如下:
3.1命令幀
幀結(jié)構(gòu)解析:
@:在起始處必須放置;
節(jié)點(diǎn)號(hào):有效值為00~31,表示PC機(jī)最多可同32臺(tái)PLC通信;
頭代碼:PLC的命令代碼;
發(fā)送文本:P C機(jī)發(fā)送的命令參數(shù);
FCS(Frame Check Sequence):
幀檢查順序代碼(幀校驗(yàn)碼);幀校驗(yàn)碼是2位(Bit)十六進(jìn)制數(shù)。它是由幀數(shù)據(jù)包含的所有字符的ASCII碼進(jìn)行位異或運(yùn)算的結(jié)果。
終止符:“*”號(hào)和回車符“CR”。
3.2響應(yīng)幀
幀結(jié)構(gòu)解析:
@:返回命令頭;
節(jié)點(diǎn)號(hào):有效值為00—31,返回?cái)?shù)據(jù)的PLC節(jié)點(diǎn)號(hào)
頭代碼:PLC的命令代碼;
尾代碼:返回命令完成狀態(tài)碼;
接收文本:在有數(shù)據(jù)時(shí)返回的數(shù)據(jù);
FCS:幀檢查順序代碼;
終止符:“*”號(hào)和回車符“CR”。
3.3 FCS(幀數(shù)據(jù)冗余校驗(yàn)碼)的計(jì)算
為了降低串行通信的誤碼率,在接收和發(fā)送端都必須對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),常用的方法是進(jìn)行F C S校驗(yàn)。對(duì)幀數(shù)據(jù)進(jìn)行冗余校驗(yàn)計(jì)算時(shí),應(yīng)對(duì)幀數(shù)據(jù)中各個(gè)字符的ASCII碼進(jìn)行位異或運(yùn)算,然后將結(jié)果轉(zhuǎn)為2位十六進(jìn)制字符。
4計(jì)算機(jī)與PLC串行通信程序?qū)嵗?BR>4.1通信主程序的設(shè)計(jì)架構(gòu)
設(shè)計(jì)通信主程序的主要功能是:實(shí)現(xiàn)計(jì)算機(jī)對(duì)PLC的運(yùn)行控制和狀態(tài)監(jiān)視,即構(gòu)成一個(gè)閉環(huán)監(jiān)控系統(tǒng)。
4.2打開串行通信端口
打開通信端口,對(duì)端口進(jìn)行初始化設(shè)置,程序設(shè)計(jì)流程。
4.3寫PLC數(shù)據(jù)
將計(jì)算機(jī)發(fā)出的命令寫入PLC,實(shí)現(xiàn)計(jì)算機(jī)對(duì)PLC的控制功能。程序設(shè)計(jì)流程
4.4讀PLC數(shù)據(jù)。
從PLC中讀取數(shù)據(jù),監(jiān)視PLC的運(yùn)行狀態(tài),程序設(shè)計(jì)流程。
例1打開通信端口程序源代碼
If frmMain.MSComm1.PortOpen=False Then
frmMain.MSComm1.CommPort=1
frmMain.MSComm1.Settings=“9600,E,7,2”
frmMain.MSComm1.PortOpen=True
End If
例2寫PLC函數(shù)程序源代碼
Public Sub MyWrite(MyAddress As bbbbbb,MyValueAs bbbbbb)
Dim a,tmpstr As bbbbbb
Dim i2 As Integer
CRLF="*"+Chr(13)
Dim word As bbbbbb
word="@00WD"
a=word&MyAddress&MyValue
a=a&fcs(a)&CRLF
If frmMain.MSComm1.PortOpen=True Then
frmMain.MSComm1.InBufferCount=0
frmMain.MSComm1.Output=a
i2=0
Do
DoEvents
i2=i2+1
Loop Until frmMain.MSComm1.InBufferCount>=11 Or i2>10000
If i2<10000 Then
tmpstr=frmMain.MSComm1.bbbbb
Else
MsgBox"傳輸錯(cuò)誤!"
End If
End If
End Sub
附錄C讀PLC內(nèi)存函數(shù)程序源代碼
Public Sub MyRead(MyAddress As bbbbbb,MyBiteAs bbbbbb,MyBit As Integer,MyFunction As bbbbbb)
Dim a,tmpstr As bbbbbb
Dim i2 As Integer
Dim word As bbbbbb
CRLF="*"+Chr(13)
word="@00RD"
a=word&MyAddress&MyBite
a=a&fcs(a)&CRLF
If frmMain.MSComm1.PortOpen=True Then
frmMain.MSComm1.InBufferCount=0
frmMain.MSComm1.Output=a
i2=0
Do
DoEvents
i2=i2+1
Loop Until frmMain.MSComm1.InBufferCount>=MyBit Or i2>10000
If i2<10000 Then
tim=0tmpstr=frmMain.MSComm1.bbbbb
tmpstr=tmpstr+frmMain.MSComm1.bbbbb
If MyFunction="zt1"Then
bbbbbb_SYSTEMSTATE1=tmpstr
End If
If MyFunction="zt2"Then
bbbbbb_SYSTEMSTATE2=tmpstr
End If
frmMain.Text3="PLC通訊正常"
frmMain.Timer1.Interval=500
Else
tim=tim+1
If Mid(tmpstr,8,4)<>"8888"Then
frmMain.Text3="PLC通訊失敗"
End If
End If
End If
End Sub
附錄D FCS函數(shù)程序源代碼
Function fcs(ByVal bbbbbstr As bbbbbb)As bbbbbb
Dim slen,i,xorresult As Integer
Dim tempfes As bbbbbb
slen=Len(bbbbbstr)
xorresult=0
For i=1 To slen
xorresult=xorresult Xor Asc(Mid$(bbbbbstr,i,1))
Next i
tempfes=Hex$(xorresult)
If Len(tempfes)=1 Then tempfes="0"+tempfes
fcs=tempfes
End Function
參考文獻(xiàn)
1徐德,孫同景,陳桂友.可編程序控制器(PLC)應(yīng)用技術(shù)[M].山東:山東科學(xué)技術(shù)出版社,2005,3
2皮壯行等編著.可編程序控制器的系統(tǒng)設(shè)計(jì)與應(yīng)用實(shí)例[M].北京:機(jī)械工業(yè)出版社,2000,11
3Microsoft Corporation著.Visual Basic6.0中文版語(yǔ)言參考手冊(cè)(希望圖書創(chuàng)作室譯)[M].北京:北京希望電子出版社,1998,9Michael Halvorson著.
4Microsoft Visual Basic 6.0 Profes-sional Step By Step.專業(yè)版循序漸進(jìn)教程(希望圖書創(chuàng)作室譯)[M].北京:北京希望電子出版社,1999
5Microsoft Corporation著.Visual Basic 6.0.中文版程序員指南(希望圖書創(chuàng)作室譯)[M].北京:北京希望電子出版社,19982345
基于VB通信控件MSComm實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC串行通信編程的研究與應(yīng)用
摘要:主要闡述了如何在VB(Visual Basic)編程環(huán)境下利用MSComm通信控件實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC進(jìn)行串行通信的編程技術(shù)。
關(guān)鍵詞:MSComm控件;串行通信
0引言
計(jì)算機(jī)串行通信是計(jì)算機(jī)與控制設(shè)備(PLC)進(jìn)行數(shù)據(jù)傳送的一種通信方式,也是實(shí)現(xiàn)工業(yè)自動(dòng)控制經(jīng)常用到的通信模式。每一種通信方式都嚴(yán)格約定了與其對(duì)應(yīng)的通信協(xié)議。要確保計(jì)算機(jī)與P L C之間能正常通信,就必須遵照PLC通信協(xié)議編寫通信程序。本文將圍繞如何使用VisualBasic(簡(jiǎn)稱VB)的MSComm通信控件編寫計(jì)算機(jī)與歐姆龍PLC串行通信程序進(jìn)行闡述。
1串行通信
串行通信在工業(yè)系統(tǒng)控制的范疇中一直占據(jù)著極其重要的地位,串行端口(RS-232)是計(jì)算機(jī)上的標(biāo)準(zhǔn)配置,常用于連接調(diào)制解調(diào)器來(lái)傳輸數(shù)據(jù),在計(jì)算機(jī)的硬件設(shè)備管理器中可以看到,定義為COM1、COM2等。常用的串行通信方式有兩種,分別是RS-232和RS-485,本文以RS-232方式為例進(jìn)行介紹。
2 VB集成開發(fā)環(huán)境中MSComm通信控件的使用與設(shè)置
2.1 Visual Basic集成開發(fā)環(huán)境
V B采用了面向?qū)ο蟮某绦蛟O(shè)計(jì)思想。它的基本思路是把復(fù)雜的程序設(shè)計(jì)問題分解為一個(gè)個(gè)能夠完成獨(dú)立功能的相對(duì)簡(jiǎn)單的對(duì)象集合,所謂“對(duì)象”就是一個(gè)可操作的實(shí)體,如窗體、窗體中的命令按鈕、標(biāo)簽、文本框等。面向?qū)ο蟮木幊叹秃孟翊罘e木一樣,程序員可根據(jù)程序和界面設(shè)計(jì)要求,直接在屏幕上“畫\"出窗口、菜單、按鈕等不同類型的對(duì)象,并為每個(gè)對(duì)象設(shè)置屬性。
2.2串行通信控件MSComm的使用和設(shè)置
VB提供了支持串行通信的可編程組件MSComm,用戶只需要將其加載到應(yīng)用程序中,對(duì)其進(jìn)行簡(jiǎn)單的屬性設(shè)置即“可使用。現(xiàn)將控件的加載及屬性設(shè)置方法進(jìn)行介紹。
2.2.1將MSComm控件加載到應(yīng)用程序中
在VB集成開發(fā)環(huán)境(IDE)中選擇“工程”選項(xiàng)卡中的“部件”子菜單進(jìn)入控件選擇頁(yè)面。
在控件選擇頁(yè)面中選上Microsoft Comm Cotrol 6.0控件加載項(xiàng),單擊“確定”按鈕完成MSComm控件的加載。
當(dāng)完成MSComm控件的加載后,在IDE中的常規(guī)控件欄即可看到MSComm控件,此時(shí)就可使用此控件了。
2.2.2 MSComm控件屬性設(shè)置
當(dāng)應(yīng)用程序成功添加MSComm控件后,就可在其屬性設(shè)置頁(yè)面完成其屬性的設(shè)置,如圖4所示。在一般的串行通信應(yīng)用程序中只需要對(duì)MSComm控件的如下幾個(gè)屬性進(jìn)行設(shè)置。
CommPort:通信程序使用的串口序號(hào),根據(jù)計(jì)算機(jī)的串口硬件配置進(jìn)行選擇,可以為1、2等。
Settings:屬性設(shè)置字符串,屬性有:波特率、奇偶校驗(yàn)、字節(jié)數(shù)據(jù)位數(shù)、字節(jié)停止位數(shù)??梢詾?600、e、7、2。也可在程序中動(dòng)態(tài)設(shè)置,屬性設(shè)置程序代碼如下:
frmMain.MSComm1.CommPort=1
frmMain.MSComm1.Settings=“9600,e,7,2”
3 PLC通信數(shù)據(jù)幀介紹
計(jì)算機(jī)與P L C通信時(shí),按應(yīng)答方式進(jìn)行。由計(jì)算機(jī)發(fā)給PLC一組ASCII碼字符數(shù)據(jù),這一組數(shù)據(jù)成為命令幀。P L C對(duì)收到的命令幀進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果返回給計(jì)算機(jī),P L C返回給計(jì)算機(jī)的這一組數(shù)據(jù)稱為響應(yīng)幀,只有當(dāng)校驗(yàn)正確時(shí)P L C才按照命令執(zhí)行。計(jì)算機(jī)和P L C通信時(shí),PLC是被動(dòng)的,必須先由計(jì)算機(jī)給PLC發(fā)出命令幀,PLC再給計(jì)算機(jī)發(fā)出響應(yīng)幀,每幀最多由1 3 1個(gè)字符組成。下面將命令幀與響應(yīng)幀的組成結(jié)構(gòu)介紹如下:
3.1命令幀
幀結(jié)構(gòu)解析:
@:在起始處必須放置;
節(jié)點(diǎn)號(hào):有效值為00~31,表示PC機(jī)最多可同32臺(tái)PLC通信;
頭代碼:PLC的命令代碼;
發(fā)送文本:P C機(jī)發(fā)送的命令參數(shù);
FCS(Frame Check Sequence):
幀檢查順序代碼(幀校驗(yàn)碼);幀校驗(yàn)碼是2位(Bit)十六進(jìn)制數(shù)。它是由幀數(shù)據(jù)包含的所有字符的ASCII碼進(jìn)行位異或運(yùn)算的結(jié)果。
終止符:“*”號(hào)和回車符“CR”。
3.2響應(yīng)幀
幀結(jié)構(gòu)解析:
@:返回命令頭;
節(jié)點(diǎn)號(hào):有效值為00—31,返回?cái)?shù)據(jù)的PLC節(jié)點(diǎn)號(hào)
頭代碼:PLC的命令代碼;
尾代碼:返回命令完成狀態(tài)碼;
接收文本:在有數(shù)據(jù)時(shí)返回的數(shù)據(jù);
FCS:幀檢查順序代碼;
終止符:“*”號(hào)和回車符“CR”。
3.3 FCS(幀數(shù)據(jù)冗余校驗(yàn)碼)的計(jì)算
為了降低串行通信的誤碼率,在接收和發(fā)送端都必須對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),常用的方法是進(jìn)行F C S校驗(yàn)。對(duì)幀數(shù)據(jù)進(jìn)行冗余校驗(yàn)計(jì)算時(shí),應(yīng)對(duì)幀數(shù)據(jù)中各個(gè)字符的ASCII碼進(jìn)行位異或運(yùn)算,然后將結(jié)果轉(zhuǎn)為2位十六進(jìn)制字符。
4計(jì)算機(jī)與PLC串行通信程序?qū)嵗?BR>4.1通信主程序的設(shè)計(jì)架構(gòu)
設(shè)計(jì)通信主程序的主要功能是:實(shí)現(xiàn)計(jì)算機(jī)對(duì)PLC的運(yùn)行控制和狀態(tài)監(jiān)視,即構(gòu)成一個(gè)閉環(huán)監(jiān)控系統(tǒng)。
4.2打開串行通信端口
打開通信端口,對(duì)端口進(jìn)行初始化設(shè)置,程序設(shè)計(jì)流程。
4.3寫PLC數(shù)據(jù)
將計(jì)算機(jī)發(fā)出的命令寫入PLC,實(shí)現(xiàn)計(jì)算機(jī)對(duì)PLC的控制功能。程序設(shè)計(jì)流程
4.4讀PLC數(shù)據(jù)。
從PLC中讀取數(shù)據(jù),監(jiān)視PLC的運(yùn)行狀態(tài),程序設(shè)計(jì)流程。
例1打開通信端口程序源代碼
If frmMain.MSComm1.PortOpen=False Then
frmMain.MSComm1.CommPort=1
frmMain.MSComm1.Settings=“9600,E,7,2”
frmMain.MSComm1.PortOpen=True
End If
例2寫PLC函數(shù)程序源代碼
Public Sub MyWrite(MyAddress As bbbbbb,MyValueAs bbbbbb)
Dim a,tmpstr As bbbbbb
Dim i2 As Integer
CRLF="*"+Chr(13)
Dim word As bbbbbb
word="@00WD"
a=word&MyAddress&MyValue
a=a&fcs(a)&CRLF
If frmMain.MSComm1.PortOpen=True Then
frmMain.MSComm1.InBufferCount=0
frmMain.MSComm1.Output=a
i2=0
Do
DoEvents
i2=i2+1
Loop Until frmMain.MSComm1.InBufferCount>=11 Or i2>10000
If i2<10000 Then
tmpstr=frmMain.MSComm1.bbbbb
Else
MsgBox"傳輸錯(cuò)誤!"
End If
End If
End Sub
附錄C讀PLC內(nèi)存函數(shù)程序源代碼
Public Sub MyRead(MyAddress As bbbbbb,MyBiteAs bbbbbb,MyBit As Integer,MyFunction As bbbbbb)
Dim a,tmpstr As bbbbbb
Dim i2 As Integer
Dim word As bbbbbb
CRLF="*"+Chr(13)
word="@00RD"
a=word&MyAddress&MyBite
a=a&fcs(a)&CRLF
If frmMain.MSComm1.PortOpen=True Then
frmMain.MSComm1.InBufferCount=0
frmMain.MSComm1.Output=a
i2=0
Do
DoEvents
i2=i2+1
Loop Until frmMain.MSComm1.InBufferCount>=MyBit Or i2>10000
If i2<10000 Then
tim=0tmpstr=frmMain.MSComm1.bbbbb
tmpstr=tmpstr+frmMain.MSComm1.bbbbb
If MyFunction="zt1"Then
bbbbbb_SYSTEMSTATE1=tmpstr
End If
If MyFunction="zt2"Then
bbbbbb_SYSTEMSTATE2=tmpstr
End If
frmMain.Text3="PLC通訊正常"
frmMain.Timer1.Interval=500
Else
tim=tim+1
If Mid(tmpstr,8,4)<>"8888"Then
frmMain.Text3="PLC通訊失敗"
End If
End If
End If
End Sub
附錄D FCS函數(shù)程序源代碼
Function fcs(ByVal bbbbbstr As bbbbbb)As bbbbbb
Dim slen,i,xorresult As Integer
Dim tempfes As bbbbbb
slen=Len(bbbbbstr)
xorresult=0
For i=1 To slen
xorresult=xorresult Xor Asc(Mid$(bbbbbstr,i,1))
Next i
tempfes=Hex$(xorresult)
If Len(tempfes)=1 Then tempfes="0"+tempfes
fcs=tempfes
End Function
參考文獻(xiàn)
1徐德,孫同景,陳桂友.可編程序控制器(PLC)應(yīng)用技術(shù)[M].山東:山東科學(xué)技術(shù)出版社,2005,3
2皮壯行等編著.可編程序控制器的系統(tǒng)設(shè)計(jì)與應(yīng)用實(shí)例[M].北京:機(jī)械工業(yè)出版社,2000,11
3Microsoft Corporation著.Visual Basic6.0中文版語(yǔ)言參考手冊(cè)(希望圖書創(chuàng)作室譯)[M].北京:北京希望電子出版社,1998,9Michael Halvorson著.
4Microsoft Visual Basic 6.0 Profes-sional Step By Step.專業(yè)版循序漸進(jìn)教程(希望圖書創(chuàng)作室譯)[M].北京:北京希望電子出版社,1999
5Microsoft Corporation著.Visual Basic 6.0.中文版程序員指南(希望圖書創(chuàng)作室譯)[M].北京:北京希望電子出版社,19982345
本文標(biāo)簽:MSComm實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC串行通信編程的研究與應(yīng)用
* 由于無(wú)法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《MSComm實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC串行通信編程的研究與應(yīng)用》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
關(guān)于“MSComm實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC串行通信編程的研究與應(yīng)用”的更多資訊
個(gè)人求購(gòu)










