松下不是有PC通訊解決方案嗎?
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),西疇企業(yè)網(wǎng)站建設(shè),西疇品牌網(wǎng)站建設(shè),網(wǎng)站定制,西疇網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,西疇網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
我之前用的VB.NET的代碼:
Imports?System.Net
Imports?System.Runtime.InteropServices
Public?Class?Form1
Dim?Handle1?As?Int32
Dim?EntLink?As?Boolean
Dim?ScanCount?As?Long
Dim?PLC?As?New?NaisTcpFp.PlcClient?'TCP:NaisTcpFp.DLL/COM:NaisComFP.DLL
Public?Declare?Function?timeGetTime?Lib?"winmm.dll"?()?As?UInt32
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
Dim?i?As?Short
Me.CenterToScreen()
cmbReadMry.Items.Clear()
cmbReadMry.Items.Add("WX")
cmbReadMry.Items.Add("WY")
cmbReadMry.Items.Add("WR")
cmbReadMry.Items.Add("DT")
'
cmbWriteMry.Items.Clear()
cmbWriteMry.Items.Add("WX")
cmbWriteMry.Items.Add("WY")
cmbWriteMry.Items.Add("WR")
cmbWriteMry.Items.Add("DT")
'
cmbBitMry.Items.Clear()
cmbBitMry.Items.Add("X")
cmbBitMry.Items.Add("Y")
cmbBitMry.Items.Add("R")
cmbBitMry.Items.Add("D")
'
cmbReadType.Items.Clear()
cmbReadType.Items.Add("INT16")
cmbReadType.Items.Add("UINT16")
cmbReadType.Items.Add("DINT32")
cmbReadType.Items.Add("HEX32")
cmbReadType.Items.Add("REAL32")
cmbReadType.Items.Add("BIN16")
'
cmbWriteType.Items.Clear()
cmbWriteType.Items.Add("INT16")
cmbWriteType.Items.Add("UINT16")
cmbWriteType.Items.Add("DINT32")
cmbWriteType.Items.Add("HEX32")
cmbWriteType.Items.Add("REAL32")
cmbWriteType.Items.Add("BIN16")
For?i?=?0?To?15?Step?1
cmbBit.Items.Add("Bit"??i)
Next?i
cmbReadMry.SelectedIndex?=?3
cmbWriteMry.SelectedIndex?=?3
cmbBitMry.SelectedIndex?=?1
cmbBit.SelectedIndex?=?0
cmbReadType.SelectedIndex?=?0
cmbWriteType.SelectedIndex?=?0
lstRead.Items.Clear()
txtWrite.Text?=?""
End?Sub
Private?Sub?butLink_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butLink.Click
Dim?re?As?Short
Dim?restr?As?String?=?""
re?=?PLC.EntLink(Trim(txtLocalIP.Text),?Val(txtLocalPort.Text),?Trim(txtRemoteIP.Text),?Val(txtRemotePort.Text),?"DEMO",?Handle1)
txtReLink.Text?=?re.ToString
If?re?=?0?Then
EntLink?=?True
MsgBox("PLC聯(lián)接成功!?")
Else
EntLink?=?False
MsgBox("PLC聯(lián)接失敗:?"??restr)
End?If
End?Sub
Private?Sub?butClose_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butClose.Click
Dim?re?As?Short
If?Not?EntLink?Then
MsgBox("還未與PLC建立聯(lián)接!")
Exit?Sub
End?If
re?=?PLC.DeLink(Handle1)
txtReClose.Text?=?re.ToString
End?Sub
Private?Sub?butRead_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butRead.Click
Dim?re?As?Short
Dim?i?As?Short
Dim?RD()?As?Object
ReDim?RD(Val(txtReadCnt.Text?-?1))
If?Not?EntLink?Then
MsgBox("還未與PLC建立聯(lián)接!")
Exit?Sub
End?If
re?=?PLC.CmdRead(Handle1,?1,?cmbReadMry.SelectedIndex?+?1,?cmbReadType.SelectedIndex?+?1,?Val(txtReadAdd.Text),?Val(txtReadCnt.Text),?RD)
txtReRead.Text?=?re.ToString
lstRead.Items.Clear()
For?i?=?0?To?UBound(RD)?Step?1
If?Not?IsNothing(RD(i))?Then?lstRead.Items.Add(RD(i))
Next?i
If?re??0?Then
Timer1.Enabled?=?False
butScan.Text?=?"Cycle?R/W"
End?If
End?Sub
Private?Sub?butWrite_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butWrite.Click
Dim?re?As?Short
Dim?i?As?Short
Dim?temp()?As?String
Dim?WD()?As?Object
If?Not?EntLink?Then
MsgBox("還未與PLC建立聯(lián)接!")
Exit?Sub
End?If
ReDim?WD(Val(txtWriteCnt.Text)?-?1)
temp?=?Split(txtWrite.Text,?vbCrLf)
For?i?=?0?To?UBound(WD)?Step?1
If?i??UBound(temp)?Then
WD(i)?=?0
Else
WD(i)?=?Trim(temp(i))
End?If
Next?i
re?=?PLC.CmdWrite(Handle1,?1,?cmbWriteMry.SelectedIndex?+?1,?cmbWriteType.SelectedIndex?+?1,?Val(txtWriteAdd.Text),?Val(txtWriteCnt.Text),?WD)
txtReWrite.Text?=?re.ToString
If?re??0?Then
Timer1.Enabled?=?False
butScan.Text?=?"Cycle?R/W"
End?If
End?Sub
Private?Sub?butScan_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butScan.Click
If?Not?EntLink?Then
MsgBox("還未與PLC建立聯(lián)接!")
Exit?Sub
End?If
Timer1.Enabled?=?Not?Timer1.Enabled
If?Timer1.Enabled?Then
ScanCount?=?0
butScan.Text?=?"Stop?R/W"
Else
butScan.Text?=?"Cycle?R/W"
End?If
End?Sub
Private?Sub?Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Timer1.Tick
Timer1.Enabled?=?False
Dim?tim?As?Integer?=?timeGetTime
If?Not?EntLink?Then
MsgBox("還未與PLC建立聯(lián)接!")
Exit?Sub
End?If
'
Call?butRead_Click(Nothing,?Nothing)
Call?butWrite_Click(Nothing,?Nothing)
'
If?(Val(txtReRead.Text)??0)?Or?(Val(txtReWrite.Text)??0)?Then
butScan.Text?=?"Cycle?R/W"
Exit?Sub
Else
ScanCount?+=?1
txtScanCnt.Text?=?ScanCount
txtScanPrd.Text?=?(timeGetTime?-?tim)??"ms"
End?If
Timer1.Enabled?=?True
End?Sub
Private?Sub?butBitTest_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butBitTest.Click
If?Not?EntLink?Then
MsgBox("還未與PLC建立聯(lián)接!")
Exit?Sub
End?If
Dim?rd?As?Boolean
Dim?re?As?Short
re?=?PLC.Bit_Test(Handle1,?1,?cmbBitMry.SelectedIndex?+?1,?Val(txtBitAdd.Text),?cmbBit.SelectedIndex,?rd)
txtBitTest.Text?=?rd
txtReBit.Text?=?re
End?Sub
Private?Sub?butBitSet_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butBitSet.Click
If?Not?EntLink?Then
MsgBox("還未與PLC建立聯(lián)接!")
Exit?Sub
End?If
Dim?re?As?Short
re?=?PLC.Bit_Set(Handle1,?1,?cmbBitMry.SelectedIndex?+?1,?Val(txtBitAdd.Text),?cmbBit.SelectedIndex)
txtReBit.Text?=?re
End?Sub
Private?Sub?butBitRst_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butBitRst.Click
If?Not?EntLink?Then
MsgBox("還未與PLC建立聯(lián)接!")
Exit?Sub
End?If
Dim?re?As?Short
re?=?PLC.Bit_Reset(Handle1,?1,?cmbBitMry.SelectedIndex?+?1,?Val(txtBitAdd.Text),?cmbBit.SelectedIndex)
txtReBit.Text?=?re
End?Sub
End?Class
1、沒有選擇正確的通訊口,或著所選的通訊口被其他程序占用。
2、通訊線有問題,三菱plc所用的通訊口是422的方式,所以對于電腦的232來說要用專用的通訊電纜,這里可能是電路板壞了或者連接線斷開。也可能是電腦的通訊口接觸不良或者壞掉,建議換個(gè)通訊口試試或者換臺電腦試一下。
3、可能是PLC的編程口(準(zhǔn)確是所用的通訊口)沒有插好或者說壞掉。PLC進(jìn)行在線監(jiān)控。如果是在電腦上運(yùn)行了其他,比如:觸摸屏在線模擬、用vb或者delphi/c/c++等自己開發(fā)的軟件等與PLC通訊的,還要看程序里面所選擇的PLC的型號是否正確。
這個(gè)圈里的是通訊過程中傳送的Asc碼,包含了PLc的站號地址、指令、起始符等內(nèi)容,具體要看你的PLc通訊協(xié)議。通訊與開關(guān)量是兩回事,你得補(bǔ)習(xí)下與通訊相關(guān)的內(nèi)容。
自然是選個(gè)PLC以太網(wǎng)模塊,用網(wǎng)線和個(gè)人電腦的網(wǎng)卡鏈接(有的型號需要專用網(wǎng)卡)。1、需要熟悉你所用的PLC程序、功能、控制工藝。2、需要知道VB轉(zhuǎn)換成以太網(wǎng)通訊的編程關(guān)系。3、不是觸摸屏是 鼠標(biāo)點(diǎn)擊屏。4、有點(diǎn)難度和門檻。祝成功?。。?/p>
網(wǎng)站題目:vb.net松下plc VBNET松下plc與電腦232通訊
網(wǎng)頁路徑:http://jinyejixie.com/article26/hepdcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、全網(wǎng)營銷推廣、商城網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站維護(hù)、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)