新人帖,经过这几天断断续续的努力,终于实现了用VB对三菱PLC数据寄存器的实时读取和写入功能 点击:3628 | 回复:10



stefans

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 143回
  • 年度积分:0
  • 历史总积分:183
  • 注册:2012年7月30日
发表于:2013-12-13 09:37:05
楼主

这个是小弟写的程序,肯定还会有很多漏洞,希望论坛里的各位老大哥,帮我完善完善。希望大家都能在工控行业一展宏图。

Private Sub Command1_Click()
Dim sendata As String
Dim tim As String
Dim ml As String
Dim i As String
Dim a As String
Dim c As String
Dim d As String
i = Text1.Text
a = Hex(i)
c = Strings.Right("0000" & a, 4)
d = Mid(c, 3, 2) + Mid(c, 1, 2)
ml = "1" + "1000" + "02" + d + Chr(3)
sendata = Chr(2) + ml + sumchk(ml)
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
MSComm1.Output = sendata
Do
dummy = DoEvents
Loop Until MSComm1.InBufferCount >= 8
End Sub

Private Sub Form_Load()
MSComm1.PortOpen = True
End Sub
Private Function sumchk(dats As String) As String
Dim i
Dim CHK
For i = 1 To Len(dats)
CHK = CHK + Asc(Mid(dats, i, 1))
Next i
sumchk = Right(Hex(CHK), 2)
End Function
Private Sub Timer1_Timer()
Dim mlbl As String
Dim num As String
Dim sendata As String
Dim getdata As String
Dim tim
mlbl = "0" + "1000" + "02" + Chr(3)
sendata = Chr(2) + mlbl + sumchk(mlbl)
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
MSComm1.Output = sendata
tim = Timer
Do
If Timer > tim + 1 Then
Text3.Text = "通信超时"
Exit Sub
End If
Loop Until MSComm1.InBufferCount >= 8
getdata = MSComm1.Input
getdata = Mid(getdata, 2, 4)
Text2.Text = Val("&H" + Mid(getdata, 3, 2) + Mid(getdata, 1, 2))
End Sub

 




银光人生—华

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 13597回
  • 年度积分:0
  • 历史总积分:52877
  • 注册:2007年11月23日
发表于:2013-12-13 09:41:33
1楼

感谢楼主分享;

期待大作;

sdzhibohui

  • 精华:5帖
  • 求助:46帖
  • 帖子:1766帖 | 7713回
  • 年度积分:0
  • 历史总积分:44752
  • 注册:2011年12月19日
发表于:2013-12-13 09:50:34
2楼

发个求助贴更好                    

研讨会宣传员_3259

  • [版主]
  • 精华:3帖
  • 求助:110帖
  • 帖子:1927帖 | 14403回
  • 年度积分:102
  • 历史总积分:64749
  • 注册:2020年3月27日
发表于:2013-12-13 09:54:49
3楼

自己写通讯程序,好厉害呀!

stefans

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 143回
  • 年度积分:0
  • 历史总积分:183
  • 注册:2012年7月30日
发表于:2013-12-13 10:02:51
4楼

回复内容:

对: 银光人生—华  感谢楼主分享;期待大作; 内容的回复!


 这个程序 也写了好几天,因为以前没接触过VB从看视频开始的

stefans

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 143回
  • 年度积分:0
  • 历史总积分:183
  • 注册:2012年7月30日
发表于:2013-12-13 10:03:18
5楼

回复内容:

对: sdzhibohui  发个求助贴更好                     内容的回复!


 嗯嗯,下回注意

OLDPOLICE

  • 精华:17帖
  • 求助:20帖
  • 帖子:3169帖 | 14497回
  • 年度积分:0
  • 历史总积分:71359
  • 注册:2010年8月14日
发表于:2013-12-13 12:00:40
6楼

引用 研讨会宣传员_3259 的回复内容: 自己写通讯程序,好厉害呀! 


 

zhou1

  • 精华:0帖
  • 求助:27帖
  • 帖子:30帖 | 399回
  • 年度积分:1
  • 历史总积分:0
  • 注册:2013年8月07日
发表于:2016-08-02 17:55:23
7楼

非常感谢楼主!程序经测试完全可以使用!好人那

WTFQ9988

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:59
  • 注册:2017年3月29日
发表于:2017-03-29 10:30:27
8楼

自己写的,真厉害,是VB6.0吗?

曼联老板

  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 195回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2016年8月24日
发表于:2018-10-24 18:29:15
9楼

自己写的,真厉害,是VB6.0吗?


热门招聘
相关主题

官方公众号

智造工程师