求助,VB与200 PPI通信PLC没返回数据

已锁定

哪跑

  • 帖子

    3
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2010-10-12

普通 普通 如何晋级?

求助,VB与200 PPI通信PLC没返回数据

1318

8

2010-10-12 17:57:51

程序如下,是不是Mscomm控件没设置好,还是程序出问题了?
主要思路是利用mscomm控件的output发送写M0.0的字符串Send,plc传回E5后,再用mscomm控件的output发送确认字符串OK,此时PLC再返回数据,这样的两次接收和两次发送完成一次写的过程。现在的问题是mscomm控件的input接收不到数据,会不会是mscomm控件的output没法送出去?大家帮看下,我是新手,请大家多指教。
Dim Ok(5) As Byte
Private Sub Form_Load()

MSComm1.CommPort = 1

MSComm1.Settings = "9600,e,8,1"

MSComm1.InputMode = comInputModeBinary
MSComm1.RThreshold = 1

Ok(0) = &H10
Ok(1) = &H2
Ok(2) = &H0
Ok(3) = &H5C
Ok(4) = &H5E
Ok(5) = &H16
End Sub

Private Sub MSComm1_OnComm()
Dim Rcv_Data() As Byte

Select Case MSComm1.CommEvent

Case comEvReceive

Rcv_Data = MSComm1.Input

Text1.Text = Rcv_Data

If Rcv_Data(0) = &HE5 Then

MSComm1.Output = Ok

End If

End Select
End Sub

Private Sub OpenCom_Click()
If Not MSComm1.PortOpen Then

MSComm1.PortOpen = True

OpenCom.Caption = "关闭串口"
Else
MSComm1.PortOpen = False

OpenCom.Caption = "打开串口"
End If
End Sub
Private Sub Send_Click()

Dim Send() As Byte

Dim i As Integer

Dim Temp() As String

Const Temp_Str = "68 21 21 68 02 00 7C 32 01 00 00 00 00 00 0E 00 05 05 01 12 0A 10 01 00 01 00 00 83 00 00 00 00 03 00 01 01 00 80 16"

MSComm1.RThreshold = 1

Temp = Split(Temp_Str, " ")

ReDim Send(UBound(Temp))

For i = 0 To UBound(Temp)

Send(i) = Val("&H" & Temp(i))

Next i


MSComm1.Output = Send

Text1.Text = Rcv_Data + Text1.Text

If Len(Text1.Text) = 0 Then

Text1.Text = "empty"
End if
End Sub
求助,VB与200 PPI通信PLC没返回数据 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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