回复:s7 200与屏的连接

小旋风

  • 帖子

    2
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2010-05-13

普通 普通 如何晋级?

发布于 2010-05-13 10:26:28

9楼

我用的vb6.0来与plc通讯用的是ppi 读写报文 我查了有好几篇 有很多有错误 自己总结的 希望 那位大侠能够指点我
Private Sub form_load()
With mscomm11
.commport = 1
.settings = "9600,n,8,1"
.inputlen = 0
.rthreshold = 1
.inputmode = comminputmodebinary
End With
End Sub
Private Sub command1_click()
If Command1.Caption = "开始" Then
mscomm1.portopen = True
Command2.Visible = False
Command1.Caption = "停止"
Else
Command2.Visible = True
mscomm1.portopen = False
Command1.Caption = "开始"
End If
End Sub
Function ppird(readadress As String)
Dim i As Integer, tmp As Integer
Dim sendbyte(32) As Byte
sendbyte(0) = &H68
sendbyte(1) = &H1B
sendbyte(2) = &H1B
sendbyte(3) = &H68
sendbyte(4) = &H2
sendbyte(5) = &H0
sendbyte(6) = &H6C
sendbyte(7) = &H32
sendbyte(8) = &H1
sendbyte(9) = &H0
sendbyte(10) = &H0
sendbyte(11) = &H0
sendbyte(12) = &H0
sendbyte(13) = &H0
sendbyte(14) = &HE
sendbyte(15) = &H0
sendbyte(16) = &H0
sendbyte(17) = &H4
sendbyte(18) = &H1
sendbyte(19) = &H12
sendbyte(20) = &HA
sendbyte(21) = &H10
sendbyte(22) = &H4
sendbyte(23) = &H0
sendbyte(24) = &H1
sendbyte(25) = &H0
sendbyte(26) = &H1
sendbyte(27) = &H84
sendbyte(28) = &H0
sendbyte(29) = (readadress * 8) \ 256
sendbyte(30) = (readadress * 8) Mod 256
sendbyte(31) = &H0
sendbyte() = &H16
For i = 4 To 30
temp = temp + sendbyte(i)
Next
sendbyte(31) = temp Mod 256
ppird = sendbyte
End Function
Function ppiww(adressx As Integer, datax As Integer)
Dim i As inteer, temp As Integer
Dim sendbyte(38) As Byte
sendbyte(0) = &H68
sendbyte(1) = &H21
sendbyte(2) = &H21
sendbyte(3) = &H68
sendbyte(4) = &H2
sendbyte(5) = &H0
sendbyte(6) = &H6C
sendbyte(7) = &H32
sendbyte(8) = &H1
sendbyte(9) = &H0
sendbyte(10) = &H0
sendbyte(11) = &H0
sendbyte(12) = &H0
sendbyte(13) = &H0
sendbyte(14) = &HE
sendbyte(15) = &H0
sendbyte(16) = &H6
sendbyte(17) = &H5
sendbyte(18) = &H1
sendbyte(19) = &H12
sendbyte(20) = &HA
sendbyte(21) = &H10
sendbyte(22) = &H4
sendbyte(23) = &H0
sendbyte(24) = &H1
sendbyte(25) = &H0
sendbyte(26) = &H1
sendbyte(27) = &H84
sendbyte(28) = &H0
sendbyte(29) = (adressx * 8) \ 256
sendbyte(30) = (adressx * 8) Mod 256
sendbyte(31) = &H0
sendbyte(32) = &H4
sendbyte(33) = &H0
sendbyte(34) = &H10
sendbyte(35) = datax \ 256
sendbyte(36) = datax Mod 256
sendbyte(37) = &H0
sendbyte(38) = &H16
For i = 4 To 36
temp = temp + sendbyte(i)
Next
sendbyte(37) = temp Mod 256
ppiww = sendbyte
End Function
Private Sub mscomm1_oncomm()
Dim rcvtemp(5) As Byte
Dim rcv_array() As Byte
Dim yy As Long
Select Case mscomm1.commevent
Case commevreceive
rcv_array = mscomm1.input
If rcv_array(0) = &HE5 Then
scomm1.rthreshold = 25
rcvtemp(0) = &H10
rcvtemp(1) = &H2
rcvtemp(2) = &H0
rcvtemp(3) = &H5C
rcvtemp(4) = &H5E
rcvtemp(5) = &H16
mscomm1.output = rcvtemp
ElseIf rcv_array(0) = &H68 And rcv_array(1) = &H17 Then
yy = Val(rcv_array(25)) * 256 + Val(rcv_array(26))
Text1 = yy
End If
End Select
watchtimer.Enabled = False
End Sub
以上就是vb通讯读取报文 还望 不吝赐教






评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。