找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10524|回復: 15
打印 上一主題 下一主題
收起左側

VB開發(fā)的串口與三菱FX PLC通訊源碼

  [復制鏈接]
跳轉到指定樓層
樓主
ID:232819 發(fā)表于 2017-9-13 10:17 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
VB開發(fā)的串口與三菱FX PLC通訊源碼


vb源程序如下:

  1. Private Sub fraComm2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  2.         lblTopic = "設置連接PLC的通信端口以及PLC的站號(應與D8121相同)"
  3. End Sub

  4. Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  5.         lblTopic = "實時監(jiān)控/設置PLC的XYMTCD設備值"
  6. End Sub

  7. Private Sub OptionD_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  8.         lblTopic = "數(shù)據(jù)以十進制方式返回或設置"
  9. End Sub

  10. Private Sub OptionH_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  11.         lblTopic = "數(shù)據(jù)以十六進制方式返回或設置"
  12. End Sub

  13. Private Sub SETRST_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  14.         lblTopic = "對位元件(X,Y,M,T,C)線圈置位與復位"
  15. End Sub

  16. Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
  17.     SETRST.Enabled = False
  18.     start = False
  19.     fraComm1.Visible = True
  20.     fraComm2.Visible = True
  21. End Sub

  22. Private Sub Text1_KeyPress(KeyAscii As Integer)
  23.     char = Chr(KeyAscii)
  24.     setaddr = Text1.Text
  25.     If Len(setaddr) > 1 Then: setad = Right(setaddr, Len(setaddr) - 1)
  26.     KeyAscii = Asc(UCase(char)) '轉換為大寫
  27.    
  28.     If KeyAscii = 13 Then '按回車鍵
  29.         Device = Left(setaddr, 1)
  30.         Text1.SelStart = 0
  31.         Text1.SelLength = Len(setaddr)
  32.         Text2.Enabled = True
  33.         If (Device = "X" Or Device = "Y" And Oct(Val("&o" + setad)) = setad And Val(setad) < 178) Or (Device = "M" And CStr(Val(setad)) = setad And (Val(setad) < 1536 Or Val(setad) > 7999 And Val(setad) < 8256)) Then
  34.             DevAdd = Right(("0000" + setad), 4)
  35.             DevDat = cboStation.Text + "FFBR0" + Device + DevAdd + "01"
  36.             DevType = "XYM"
  37.             Text2.Enabled = False
  38.             SETRST.Enabled = True
  39.             start = True
  40.         End If
  41.         If Device = "D" And CStr(Val(setad)) = setad And (Val(setad) < 1000 Or Val(setad) > 7999 And Val(setad) < 8256) Then
  42.             DevAdd = Right(("0000" + setad), 4)
  43.             If Check1.Value = 0 Then
  44.                 DevDat = cboStation.Text + "FFWR0" + Device + DevAdd + "01" '使用WR命令讀16bit數(shù)據(jù)
  45.                 DevType = "D"
  46.             Else
  47.                 DevDat = cboStation.Text + "FFWR0" + Device + DevAdd + "02" '使用WR命令讀32bit數(shù)據(jù)
  48.                 DevType = "2D"
  49.             End If
  50.             SETRST.Enabled = False
  51.             start = True
  52.         End If
  53.         If Device = "T" And CStr(Val(setad)) = setad And Val(setad) < 256 Then
  54.             DevAdd = Right(("000" + setad), 3)
  55.             DevDatTC = cboStation.Text + "FFBR0" + Device + "S" + DevAdd + "01" 'T的線圈狀態(tài)
  56.             DevDat = cboStation.Text + "FFWR0" + Device + "N" + DevAdd + "01" 'T的數(shù)據(jù)值
  57.             DevType = "D"
  58.             SETRST.Enabled = True
  59.             start = True
  60.         End If
  61.         If Device = "C" And CStr(Val(setad)) = setad And Val(setad) < 256 Then
  62.             DevAdd = Right(("000" + setad), 3)
  63.             DevDatTC = cboStation.Text + "FFBR0" + Device + "S" + DevAdd + "01" 'C的線圈狀態(tài)
  64.             If Val(setad) > 199 Then
  65.                 DevDat = cboStation.Text + "FFWR0" + Device + "N" + DevAdd + "01" 'C200以上的數(shù)據(jù)值
  66.                 DevType = "2D"
  67.             Else
  68.                 DevDat = cboStation.Text + "FFWR0" + Device + "N" + DevAdd + "01" 'C200以下的數(shù)據(jù)值
  69.                 DevType = "D"
  70.             End If
  71.             SETRST.Enabled = True
  72.             start = True
  73.         End If
  74.         fraComm1.Visible = False
  75.         fraComm2.Visible = False
  76.     Else
  77.         start = False
  78.         fraComm1.Visible = True
  79.         fraComm2.Visible = True

  80.     End If
  81. End Sub
  82.    
  83. Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  84.         lblTopic = "輸入要監(jiān)控或設置的地址回車確定,如D0,T10,Y7等"
  85. End Sub

  86. Private Sub Text2_KeyDown(KeyCode As Integer, Shift As Integer)
  87.         If KeyCode <> 13 Then
  88.             start = False
  89.         End If
  90. End Sub

  91. Private Sub Text2_KeyPress(KeyAscii As Integer)
  92.     char = Chr(KeyAscii)
  93.     KeyAscii = Asc(UCase(char))
  94.     If Device = "D" And CStr(Val(setad)) = setad And Val(setad) < 1000 Then
  95.         start = False
  96.     End If
  97.     If (Device = "T" Or Device = "C") And CStr(Val(setad)) = setad And Val(setad) < 256 Then
  98.         start = False
  99.     End If
  100.     If KeyAscii = 13 Then
  101.       If Val(DevAdd) > 7999 Then
  102.          If MsgBox("改變系統(tǒng)參數(shù)可能對系統(tǒng)造成破壞,是否寫入?", vbOKCancel + vbCritical) = vbCancel Then Exit Sub
  103.       ElseIf MsgBox("改變當前值可能對運行造成危險,是否寫入?", vbOKCancel + vbExclamation) = vbCancel Then Exit Sub
  104.       End If
  105.             If Device = "D" And Check1.Value = 0 Then
  106.                 DevAdd = Right(("0000" + setad), 4)
  107.             ElseIf Device = "D" And Check1.Value = 1 Then
  108.                 DevAdd = Right(("0000" + setad), 4)
  109.             Else
  110.                 DevAdd = Right(("000" + setad), 3)
  111.             End If
  112.             If OptionD.Value Then '十進制方式
  113.                 If Device = "C" And Val(setad) > 199 Then 'C200以上寫入
  114.                     If Val(Text2.Text) > 2847483647# Then: GoTo this
  115.                     DevDat1 = cboStation.Text + "FFWW0" + Device + "N" + DevAdd + "01" + Right("00000000" + Hex(Val(Text2.Text)), 8)
  116.                 ElseIf Device = "D" And Check1.Value = 1 Then '雙字節(jié)D寫入
  117.                     If Val(Text2.Text) > 2847483647# Then: GoTo this
  118.                     DevDat1 = Right("00000000" + Hex(Val(Text2.Text)), 8)
  119.                     DevDat1 = Right(DevDat1, 4) + Left(DevDat1, 4)
  120.                     DevDat1 = cboStation.Text + "FFWW0" + Device + DevAdd + "02" + DevDat1
  121.                 Else
  122.                     If Val(Text2.Text) > 32767 Then: GoTo this
  123.                     If Device = "D" Then '單字節(jié)D寫入
  124.                         DevDat1 = cboStation.Text + "FFWW0" + Device + DevAdd + "01" + Right("0000" + Hex(Val(Text2.Text)), 4)
  125.                     Else 'C200以下寫入
  126.                         DevDat1 = cboStation.Text + "FFWW0" + Device + "N" + DevAdd + "01" + Right("0000" + Hex(Val(Text2.Text)), 4)
  127.                     End If
  128.                 End If
  129.             Else '十六進制方式
  130.                 If Device = "C" And Val(setad) > 199 Then 'C200以上寫入
  131.                     If Val("&H" + Text2.Text) > 2847483647# Then: GoTo this
  132.                     DevDat1 = cboStation.Text + "FFWW0" + Device + "N" + DevAdd + "01" + Right("00000000" + Text2.Text, 8)
  133.                 ElseIf Device = "D" And Check1.Value = 1 Then '雙字節(jié)D寫入
  134.                     If Val("&H" + Text2.Text) > 2847483647# Then: GoTo this
  135.                     DevDat1 = Right("00000000" + Text2.Text, 8)
  136.                     DevDat1 = Right(DevDat1, 4) + Left(DevDat1, 4)
  137.                     DevDat1 = cboStation.Text + "FFWW0" + Device + DevAdd + "02" + DevDat1
  138.                 Else
  139.                     If Val("&H" + Text2.Text) > 32767 Then: GoTo this
  140.                     If Device = "D" Then '單字節(jié)D寫入
  141.                         DevDat1 = cboStation.Text + "FFWW0" + Device + DevAdd + "01" + Right("0000" + Text2.Text, 4)
  142. ……………………

  143. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
VB開發(fā)的串口與三菱FX PLC通訊源碼.rar (19.54 KB, 下載次數(shù): 140)




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發(fā)
ID:272098 發(fā)表于 2018-1-5 19:48 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

板凳
ID:33634 發(fā)表于 2018-5-24 21:10 | 只看該作者
謝謝分享。
回復

使用道具 舉報

地板
ID:219903 發(fā)表于 2018-6-20 14:37 | 只看該作者
謝謝分享,無遠程連接是怎么回事?
回復

使用道具 舉報

5#
ID:361620 發(fā)表于 2018-7-24 18:17 | 只看該作者

感謝樓主分享
回復

使用道具 舉報

6#
ID:386518 發(fā)表于 2018-8-15 13:40 | 只看該作者
樓主高人
回復

使用道具 舉報

7#
ID:395920 發(fā)表于 2018-9-10 10:50 | 只看該作者
支持,支持分享
回復

使用道具 舉報

8#
ID:138443 發(fā)表于 2018-10-18 23:45 | 只看該作者
太好了,謝謝了
回復

使用道具 舉報

9#
ID:373838 發(fā)表于 2018-10-20 08:42 | 只看該作者
太好了,謝謝了。!
回復

使用道具 舉報

10#
ID:23309 發(fā)表于 2019-10-29 19:12 | 只看該作者

感謝樓主分享
回復

使用道具 舉報

11#
ID:646618 發(fā)表于 2019-11-21 16:32 | 只看該作者


感謝樓主分享  試試看
回復

使用道具 舉報

12#
ID:715003 發(fā)表于 2020-4-11 21:53 | 只看該作者
下載了不是你說的這個呢??
有原件嗎發(fā)給我好嗎?
回復

使用道具 舉報

13#
ID:750448 發(fā)表于 2020-5-13 03:43 | 只看該作者
謝謝分享~剛好可以用來最近在研究的
回復

使用道具 舉報

14#
ID:750209 發(fā)表于 2020-6-27 17:11 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

15#
ID:47634 發(fā)表于 2020-7-6 06:56 | 只看該作者
很好很好,感謝樓主的好資料,下載學習了
回復

使用道具 舉報

16#
ID:963949 發(fā)表于 2021-9-4 08:47 | 只看該作者
已下載,多謝樓主分享1~
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表