hsyyqq
級別: *
精華主題: * 篇
發(fā)帖數量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看hsyyqq的 主題 / 回貼
樓主  發(fā)表于: 2011-05-03 09:53
上位機 我打算用一般的pc機 現在需要跟電腦通信的有 三菱plc(加一個溫度模塊),還有一款數字千分表(很精密的) 表附帶一根RS232通信線,目前我只知道表的通信格式字,其他一無所知,各位大俠 怎么實現pc與plc的通信 還有pc與數字千分表的? 上位機用戶軟件我打算用vb 來編寫,大家看這樣行得通不 ?
dream8888
級別: *
精華主題: * 篇
發(fā)帖數量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看dream8888的 主題 / 回貼
1樓  發(fā)表于: 2011-05-03 09:58
完全行得通!知道通信格式已經足矣!我不知道你想通過上位機來控制還是讀取數值!如有不明可聯(lián)系我QQ434823830
techo
級別: 略有小成
精華主題: 0
發(fā)帖數量: 335 個
工控威望: 409 點
下載積分: 1126 分
在線時間: 117(小時)
注冊時間: 2010-05-09
最后登錄: 2015-11-29
查看techo的 主題 / 回貼
2樓  發(fā)表于: 2011-05-03 10:08
很簡單呀,上位機可以直接裝組態(tài)軟件,千分表直接和PLC 通訊,就搞頂.
hsyyqq
級別: *
精華主題: * 篇
發(fā)帖數量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看hsyyqq的 主題 / 回貼
3樓  發(fā)表于: 2011-05-03 10:17
1樓真的嗎? 我馬上加qq 謝謝 三克油啊。
hsyyqq
級別: *
精華主題: * 篇
發(fā)帖數量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看hsyyqq的 主題 / 回貼
4樓  發(fā)表于: 2011-05-03 10:19
2樓 組態(tài)軟件我是不想用了 我用過昆侖組態(tài)用起來是方便當時總感覺 不好有缺點 所以我才改成這樣的。我已經做過一套了。
hsyyqq
級別: *
精華主題: * 篇
發(fā)帖數量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看hsyyqq的 主題 / 回貼
5樓  發(fā)表于: 2011-05-04 10:48
昨天開始 寫今天 初步寫了個代碼不過指令發(fā)出好像plc沒有回應 有懂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
級別: *
精華主題: * 篇
發(fā)帖數量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看hsyyqq的 主題 / 回貼
6樓  發(fā)表于: 2011-05-04 17:53
圖片:
圖片:
好吧在完全不懂的情況下我自己摸索出來了 哈哈今天總算是把數據讀出來了 我在網上下了個樣例程序就是樓上的結果plc沒有返回 我又不懂調試vb這樣的程序 后來我想到一個解密用的串口工具 把讀取d123 開始的4位數據寄存器數據 指令格式是02h30h31h30h46h36h30h34h03h37h34h 結果發(fā)出去得到\STX64000000\ETX8D 中間那個64000000就是d123 d124 d125 d126的內容了 我實現在plc里往d123寫入了k100其他就沒動。后來我發(fā)現vb程序里是不是寫入失敗了就換了一種方式 不照抄 網上的樣例程序了,修改一下


  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
寫進去之后發(fā)現返回出來的數據跟我用串口工具調試的一樣 那么說成功了
本來很簡單的東西 不過我發(fā)現vb里數制什么的好多東西我都忘記了  搞不清楚現在 不過今天是老?胁 居然試出來了難道我跟美女聊一下天就有靈感了
另外求師傅一名 幫幫我