hsyyqq
級(jí)別: *
![]() |
上位機(jī) 我打算用一般的pc機(jī) 現(xiàn)在需要跟電腦通信的有 三菱plc(加一個(gè)溫度模塊),還有一款數(shù)字千分表(很精密的) 表附帶一根RS232通信線,目前我只知道表的通信格式字,其他一無所知,各位大俠 怎么實(shí)現(xiàn)pc與plc的通信 還有pc與數(shù)字千分表的? 上位機(jī)用戶軟件我打算用vb 來編寫,大家看這樣行得通不 ? |
---|---|
|
dream8888
級(jí)別: *
![]() |
完全行得通!知道通信格式已經(jīng)足矣!我不知道你想通過上位機(jī)來控制還是讀取數(shù)值!如有不明可聯(lián)系我QQ434823830 |
---|---|
|
techo
級(jí)別: 略有小成
![]() |
很簡單呀,上位機(jī)可以直接裝組態(tài)軟件,千分表直接和PLC 通訊,就搞頂. |
---|---|
|
hsyyqq
級(jí)別: *
![]() |
2樓 組態(tài)軟件我是不想用了 我用過昆侖組態(tài)用起來是方便當(dāng)時(shí)總感覺 不好有缺點(diǎn) 所以我才改成這樣的。我已經(jīng)做過一套了。 |
---|---|
|
hsyyqq
級(jí)別: *
![]() |
昨天開始 寫今天 初步寫了個(gè)代碼不過指令發(fā)出好像plc沒有回應(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í)別: *
![]() |
圖片:
![]()
圖片:
![]() 好吧在完全不懂的情況下我自己摸索出來了 哈哈今天總算是把數(shù)據(jù)讀出來了 我在網(wǎng)上下了個(gè)樣例程序就是樓上的結(jié)果plc沒有返回 我又不懂調(diào)試vb這樣的程序 后來我想到一個(gè)解密用的串口工具 把讀取d123 開始的4位數(shù)據(jù)寄存器數(shù)據(jù) 指令格式是02h30h31h30h46h36h30h34h03h37h34h 結(jié)果發(fā)出去得到\STX64000000\ETX8D 中間那個(gè)64000000就是d123 d124 d125 d126的內(nèi)容了 我實(shí)現(xiàn)在plc里往d123寫入了k100其他就沒動(dòng)。后來我發(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)返回出來的數(shù)據(jù)跟我用串口工具調(diào)試的一樣 那么說成功了 ![]() 本來很簡單的東西 不過我發(fā)現(xiàn)vb里數(shù)制什么的好多東西我都忘記了 搞不清楚現(xiàn)在 不過今天是老?胁 居然試出來了難道我跟美女聊一下天就有靈感了 另外求師傅一名 幫幫我 ![]() |
---|---|
|