一个关于vb和三菱plc的通讯问题WW.W_PLC※JS_C,OM-PL,C-技.术_网
做了一个vb和三菱的通讯程序
WW.W_PLCJS_COM-PLC-技.术_网
大部分是好的P.L.C.技.术.网——可编程控制器技术门户
其中有一部分是每隔0.5秒做一次针对大概几十个点的读出(这些点有WWW_PL※CJS_COM-PLC-技.术_网
字也有位),但有时候会出现不能读出也就是显示的数字不随着plcWWW.PLCJS.COM——可编程控制器技术门户
内点的改变而改变,这种现象有时出现有时不出现P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
这种方法的实现是用timer来实现的WW.W_PLC※JS_C,OM-PL,C-技.术_网
如果把几十个点的个数减少为一半左右这种现象就不会出现W1WW_P4LCJS_COM-PLC-技.术_网
请问怎么解决WWW.PLCJS.COM——可编程控制器技术门户
非常感谢 ——可——编——程——控-制-器-技——术——门——户
以下是对《一个关于vb和三菱plc的通讯问题》的回复:
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
匿名回复:
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
使用通讯控件返回的串口的状态,检测串口存储区的大小,作一下改写。 WWW.PLCJS.COM——可编程控制器技术门户
匿名回复:WWW_P※LCJS_COM-PLC-)技.术_网
可以说详细一点吗WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
我也想到可能是串口存储区的问题——可——编——程——控-制-器-技——术——门——户
可是怎么检测,怎么改写我不太明白WWW_PLCJS_COM-PLC-技.术_网
非常感谢 plcjs.技.术_网
匿名回复:WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
是不是妳0.5秒的循環周期太快,改成0.8或1秒看一下,如果還是不行就肯是緩沖沒清空. WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
匿名回复:WWW_PL※CJS_COM-PLC-技.术_网
是这样WWW.PLCJS.COM——可编程控制器技术门户
由于有很多个点要扫描——可——编——程——控-制-器-技——术——门——户
我是每一个开始扫描的时候都先对缓冲清零了P.L.C.技.术.网——可编程控制器技术门户
1秒也试过WWW_PLC※JS_COM-PmLC-技.术_网
还是这样WW.W_PLC※JS_C,OM-PL,C-技.术_网
不然把程序拿上来看一下,很简单的WWW_PLCJS_COM-PLC-技.术_网
Private Sub Timer1_Timer()——可——编——程——控-制-器-技——术——门——户
Dim pc_read11 As StringWWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
Dim timwr11 As SingleWWW_PLCJS_COM-PLC-技.术_网
Dim A As StringWWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
Dim B As StringWWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
Dim C As StringWWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
MSComm1.InBufferCount = 0WW.W_PLCJS_COM-PLC-技.术_网
MSComm1.OutBufferCount = 0WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
MSComm1.Output = Chr(5) + "00FFWR0D0120022E"WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
timwr11 = TimerWWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
DoP_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
If Timer > timwr11 + 0.1 Then: GoTo err_check11WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
Loop Until MSComm1.InBufferCount = 16WWW_PLCJS@_COM%-PLC-技.术_网
pc_read11 = MSComm1.InputWWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
If Mid(pc_read11, 1, 5) = Chr(2) + "00FF" ThenWWW.PLCJS.COM——可编程控制器技术门户
A = Mid(pc_read11, 8, 2)WWW_P※LCJS_COM-PLC-)技.术_网
B = "&h" + AWWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
C = Val(B)WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
Text5.Text = CWWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
ElseWW.W_PLCJS_COM-PLC-技.术_网
MsgBox "传输错误!"WWW_PL※CJS_COM-PLC-技.术_网
End IfWWcW_PLCJS_COM-PLC-技.术_网
err_check11:WWW_PL※CJS_COM-PLC-技.术_网
pc_read11 = MSComm1.InputW1WW_P4LCJS_COM-PLC-技.术_网
然后还有若干个类似的通讯命令WWW.PLCJS.COM——可编程控制器技术门户
在每个开始的时候都有P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
MSComm1.InBufferCount = 0WWW.PLCJS.COM——可编程控制器技术门户
MSComm1.OutBufferCount = 0WWW_P※LCJS_CO※M-PLC-技-.术_网
来清零呀 P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
匿名回复:P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
//----------------WWW_PLC※JS_COM-PmLC-技.术_网
如果把几十个点的个数减少为一半左右这种现象就不会出现WWW_PL※CJS_COM-PLC-技.术_网
//---------------WWcW_PLCJS_COM-PLC-技.术_网
給你一個簡單方法,分兩次讀,一次讀一半,看看是否可行. WW.W_PLC※JS_C,OM-PL,C-技.术_网
匿名回复:WWW_P※LCJS_CO※M-PLC-技-.术_网
我现在用vb实现计算机和LG的PLC的串口通信,但是不知道为什么一点反映都没有,我考虑了半天,怎么也查不出毛病在什么地方,是不是在PLC上还要进行一番设置,我现在只是用VB编了个小程序,然后就接到PLC上,我是学生,没有经验,不知哪位高手能帮助一下,不盛感激! 共 plcjs.技.术_网