hsyyqq
級(jí)別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊(cè)時(shí)間: *
最后登錄: *
查看hsyyqq的 主題 / 回貼
樓主  發(fā)表于: 2011-05-03 09:53
上位機(jī) 我打算用一般的pc機(jī) 現(xiàn)在需要跟電腦通信的有 三菱plc(加一個(gè)溫度模塊),還有一款數(shù)字千分表(很精密的) 表附帶一根RS232通信線,目前我只知道表的通信格式字,其他一無(wú)所知,各位大俠 怎么實(shí)現(xiàn)pc與plc的通信 還有pc與數(shù)字千分表的? 上位機(jī)用戶軟件我打算用vb 來(lái)編寫,大家看這樣行得通不 ?
dream8888
級(jí)別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊(cè)時(shí)間: *
最后登錄: *
查看dream8888的 主題 / 回貼
1樓  發(fā)表于: 2011-05-03 09:58
完全行得通!知道通信格式已經(jīng)足矣!我不知道你想通過(guò)上位機(jī)來(lái)控制還是讀取數(shù)值!如有不明可聯(lián)系我QQ434823830
techo
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 335 個(gè)
工控威望: 409 點(diǎn)
下載積分: 1126 分
在線時(shí)間: 117(小時(shí))
注冊(cè)時(shí)間: 2010-05-09
最后登錄: 2015-11-29
查看techo的 主題 / 回貼
2樓  發(fā)表于: 2011-05-03 10:08
很簡(jiǎn)單呀,上位機(jī)可以直接裝組態(tài)軟件,千分表直接和PLC 通訊,就搞頂.
hsyyqq
級(jí)別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊(cè)時(shí)間: *
最后登錄: *
查看hsyyqq的 主題 / 回貼
3樓  發(fā)表于: 2011-05-03 10:17
1樓真的嗎? 我馬上加qq 謝謝 三克油啊。
hsyyqq
級(jí)別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊(cè)時(shí)間: *
最后登錄: *
查看hsyyqq的 主題 / 回貼
4樓  發(fā)表于: 2011-05-03 10:19
2樓 組態(tài)軟件我是不想用了 我用過(guò)昆侖組態(tài)用起來(lái)是方便當(dāng)時(shí)總感覺(jué) 不好有缺點(diǎn) 所以我才改成這樣的。我已經(jīng)做過(guò)一套了。
hsyyqq
級(jí)別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊(cè)時(shí)間: *
最后登錄: *
查看hsyyqq的 主題 / 回貼
5樓  發(fā)表于: 2011-05-04 10:48
昨天開(kāi)始 寫今天 初步寫了個(gè)代碼不過(guò)指令發(fā)出好像plc沒(méi)有回應(yīng) 有懂vb的嗎幫我看看
Private Sub Command1_Click()
Dim OutString As String
Dim InString As String
MSComm1.OutBufferCount = 0
MSComm1.InBufferCount = 0
OutString = Chr(2) + "0" + "10f604" + Chr(3) + "74"
MSComm1.Output = OutString
Text1.Text = OutString
Do
  DoEvents
  Loop Until MSComm1.InBufferCount = 12
  InString = MSComm1.Input
  Text2.Text = InString

End Sub

Private Sub Form_Load()

MSComm1.CommPort = 3
MSComm1.Settings = "9600,e,7,1"
MSComm1.PortOpen = True

End Sub
hsyyqq
級(jí)別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊(cè)時(shí)間: *
最后登錄: *
查看hsyyqq的 主題 / 回貼
6樓  發(fā)表于: 2011-05-04 17:53
圖片:
圖片:
好吧在完全不懂的情況下我自己摸索出來(lái)了 哈哈今天總算是把數(shù)據(jù)讀出來(lái)了 我在網(wǎng)上下了個(gè)樣例程序就是樓上的結(jié)果plc沒(méi)有返回 我又不懂調(diào)試vb這樣的程序 后來(lái)我想到一個(gè)解密用的串口工具 把讀取d123 開(kāi)始的4位數(shù)據(jù)寄存器數(shù)據(jù) 指令格式是02h30h31h30h46h36h30h34h03h37h34h 結(jié)果發(fā)出去得到\STX64000000\ETX8D 中間那個(gè)64000000就是d123 d124 d125 d126的內(nèi)容了 我實(shí)現(xiàn)在plc里往d123寫入了k100其他就沒(méi)動(dòng)。后來(lái)我發(fā)現(xiàn)vb程序里是不是寫入失敗了就換了一種方式 不照抄 網(wǎng)上的樣例程序了,修改一下


  Private Sub Command1_Click()
Dim OutString(10) As Byte
Dim InString() As Byte
MSComm1.OutBufferCount = 0
MSComm1.InBufferCount = 0
OutString(0) = &H2
OutString(1) = &H30
OutString(2) = &H31
OutString(3) = &H30
OutString(4) = &H46
OutString(5) = &H36
OutString(6) = &H30
OutString(7) = &H34
OutString(8) = &H3
OutString(9) = &H37
OutString(10) = &H34
MSComm1.Output = OutString
Text1.Text = OutString
Do
  DoEvents
  Loop Until MSComm1.InBufferCount = 12
  InString = MSComm1.Input
  Text2.Text = InString
End Sub

Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.Settings = "9600,e,7,1"
MSComm1.PortOpen = True
End Sub
寫進(jìn)去之后發(fā)現(xiàn)返回出來(lái)的數(shù)據(jù)跟我用串口工具調(diào)試的一樣 那么說(shuō)成功了
本來(lái)很簡(jiǎn)單的東西 不過(guò)我發(fā)現(xiàn)vb里數(shù)制什么的好多東西我都忘記了  搞不清楚現(xiàn)在 不過(guò)今天是老?胁 居然試出來(lái)了難道我跟美女聊一下天就有靈感了
另外求師傅一名 幫幫我