登录
首页 PLC论坛 三菱Mitsubishi
回帖 发帖
正文

主题:请求帮助: 我用VB编的一个通讯程序,不知

点击:10189 回复:9

请求帮助:
  我用VB编的一个通讯程序,不知怎么也接收不到数据,只能显示"?????????" 源程序如下,
请各位帮忙分析一下,问题出在什么地方:我的邮箱:leesnw@163.com
Function SumChek(DATA$) As String
Dim i&
Dim Chek&
For i = 1 To Len(DATA)
  Chek = Chek + Asc(Mid(DATA, i, 1))
 
  Next i
 
  SumChek = Right(Hex$(Chek + 3), 2)
   
End Function

Private Sub CommDel_Click()
Text2.Text = ""
Text1.Text = ""
End Sub
Private Sub CommRead_Click()
Dim DATA As String
DATA = Text2.Text
MSComm1.Output = "02" + DATA + "03" + SumChek(DATA)
End Sub
Private Sub Form_Load()
Dim STX As String
Dim ETX As String
STX = Chr(2)
ETX = Chr(3)
MSComm1.Settings = "9600,e,7,1"
MSComm1.CommPort = 1
MSComm1.PortOpen = True
MSComm1.Handshaking = 0
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
Text2.Text = "请输入数据"
Text1.Text = "数据接收窗"
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
Timer1.Enabled = False
End Sub
Private Sub Option1_Click()
End Sub
Private Sub Timer1_Timer()
If MSComm1.InBufferCount > 0 Then
Text1.Text = MSComm1.Input
End If
End Sub
02-11-08 13:25
是现三菱的PLC通讯的吧。我粗看一下,你少了 MSComm1.RTSEnable = True这一句是不行的。其实编通讯程序是有点窍门的,我在论坛中有人帖子也说到这些问题。
02-11-09 00:56
用Omron PLC好,通迅协议很全.
这年头PLC HMI高手很多,2年前我在一间Gen公司作电气工程师时,
就有几个朋友们精于此,但都把技术核心藏在heart,国内市面上关于PLC HMI的书可
谓垃圾,落后于国内最高水平5年,国处10年以上.
以下谈谈本人开发PLC&VB HMI(Omron PLC) 的体会,说错了请大家指正,thanks!
1,所有的功能模块(子程式)都放在VB 的Module中,用时调用,(积木?)
2,程序入口就用通信指令将PLCSTATUS强制"MONITOR".  波特率19200b/s以上.
3,一定要有智能容错技术(最难).(客户500万买你的产品,出事故损失1000万,你可要在地球蒸发)
4,要用NT4.0 or WIN2000,并用系统策略编辑器限制用户非法使用资源.
5,使用无线通讯和UNIX系统,产品可卖贵50万.(不是用VB,用VC和汇编混合,以色列军用无线通讯技术)
以下列了几个功能模块,(要全套的可得用软件和技术资料来换)
(VC和汇编混合的不能换,换了我可要在地球蒸发)
e-mail:fancad@hotmail.com
Sub OMRONFCSSET(TD$, FCS$)
'OMRON PLC CHECK SUM BLOCK SETTING
   Dim L%, A%, I%, J$
   L% = Len(TD$)
   A% = 0
   For I% = 1 To L%
       J$ = Mid$(TD$, I%, 1)
       A% = Asc(J$) Xor A%
       FCS$ = Hex$(A%)
       If Len(FCS$) = 1 Then FCS$ = "0" + FCS$
   Next I%
End Sub
Sub PLCSTATUSWRITE(A$)
   Dim PLCCOMMAND$, mscomm1_RXD$, mscomm1_FLAG, I%, FCS$, ERRMSG%
   Dim TEMP1$
   ReDim TEMPBIT$(0 To 15)
'    On Error Resume Next
   Select Case A$
       Case "PROGRAM"
           PLCCOMMAND$ = "@00SC00"
       Case "DEBUG"
           PLCCOMMAND$ = "@00SC01"
       Case "MONITOR"
           PLCCOMMAND$ = "@00SC02"
       Case "RUN"
           PLCCOMMAND$ = "@00SC03"
   End Select
   Call com1plc(PLCCOMMAND$, mscomm1_RXD$)
   If mscomm1_RXD$ = "" Then
       End
   End If
End Sub
Sub PLC_ERROR_MESSAGE(CODE_IN$, MESSAGE_OUT$)
   Select Case CODE_IN$
       Case "00"
           MESSAGE_OUT$ = "NORMAL COMPLETION"
       Case "01"
           MESSAGE_OUT$ = "NOT EXECUTABLE IN 'RUN' MODE"
       Case "02"
02-11-09 12:47
别的我没看,光串口送出的数据就不对,你没搞明白ASC码,建议下载本站通讯手册,看basic编的代码,三菱的所有产品抄了例子就行
02-11-09 19:25
用Delphi很简单,4、5个行代码就搞定!
02-11-23 15:11
晕倒!
04-11-02 21:22
三楼:
*************************
1,用Omron PLC好,通迅协议很全
  我接触的plc的通讯协议都很全的!
2,所有的功能模块(子程式)都放在VB 的Module中,用时调用
  同意!
  PLC_ERROR_MESSAGE--我建议用数据的表格来做,并且可以做成中英文
3,一定要有智能容错技术
  双手赞成!
  可不是
  *****************
   用Delphi很简单,4、5个行代码就搞定!
  *****************
个人观点,没有攻击他人的意思!
04-11-03 08:31
3,一定要有智能容错技术
  双手赞成!
  可不是
  *****************
   用Delphi很简单,4、5个行代码就搞定!
  *****************
个人观点,没有攻击他人的意思!
我的意思是做通跟做稳定是两个完全不同的概念
做通表示你通讯协议已经理解了,看透了
做稳定表示你想东西想的全了,考虑问题更多了,能预见的干扰都考虑进去了!
04-11-03 09:01
兄台三菱PLC仿真软件我需要,能否告诉我怎样用 Thank you!!!
小弟E-mail:dgang1983@yahoo.com
QQ:345746234
04-11-03 18:05
上面的程序对我也很有用,能不能在全一些呢?深表谢意!
06-05-02 11:47

工控新闻

更多新闻资讯