[三菱] 求助:请LG的高手指教编程问题!

[复制链接]
查看2428 | 回复6 | 2006-8-19 08:37:00 | 显示全部楼层 |阅读模式
各位大虾,我刚刚开始学习PLC,接到一个任务,要在vc++中用命令字实现对LG的K200S的控制,看了几天说明书,有点迷糊了。不知道各位是否做过类似的活儿,能不能提点我一下,不胜感谢![s:298][s:298][s:298]
gkboy | 2006-8-22 08:25:00 | 显示全部楼层
我做过三菱和欧姆龙的,没有做过LG的,不过原理是一样的,就是用VC的MSCOMM组件发送通讯指令给PLC,所以MSCOMM指令一定要会用,然后看看LG PLC通讯指令,这些指令可能要专门的通讯手册才能找到
flowers3344 | 2006-8-22 10:00:00 | 显示全部楼层
谢谢gkboy的回复。我已经通过MSCOMM控件编辑PC端口,现在遇到的问题是我不知道怎样把PLC的命令加载到VC中,尝试了一下把PLC指令译成ASCII码发送给端口,不过好像不行,不知道做过类似工作的高手是怎么处理输出命令的?另外,输入方面是否就是把端口接收到的PLC响应译成ASCII码交给VC处理呢?麻烦gkboy大哥给个思路,关于PLC命令处理的,或者其他的高手指点一下,不胜感谢。[s:309][s:309][s:309]
gkboy | 2006-8-22 10:14:00 | 显示全部楼层

Private Declare Function GetTickCount Lib \"kernel32\" () As Long

Public Sub timedelay(ByVal t As Long)
Dim tt As Double
tt = GetTickCount()
Do
DoEvents
Loop Until GetTickCount() - tt > t
End Sub

.........................................

Dim ComCls As CLS
Set ComCls = New CLS
MSComm1.Output = Chr$(5) + \"00FFBWAX0003011\"
Do
DoEvents
timedelay 200
Loop While MSComm1.InBufferCount <= 4
\'Label15.Caption = MSComm1.Input

If MSComm1.Input = \"\" Then
MsgBox \"通讯错误,请确认线路是否连接\", vbOKOnly, \"错误\"
Unload Me
Else
Shape1.Visible = True
State_Text = \"串口已打开,开始运行\"
\'Label21.Caption = \"开始运行\"
End If
Set ComCls = Nothing

以上我用VB做的写数据:
其中Chr$(5) + \"00FFBWAX0003011\"就是通讯写指令
还有注意延时timedelay函数,延时要适当,否则通讯容易不成功

下面使读指令
Dim ComCls As CLS
Dim Now1
Set ComCls = New CLS
Now1 = Format(Now(), \"yymmddhhmmss\")
\'QV = CStr(ComCls.onCommRevPLC(\"00\", \"FF\", \"S\", \"0550\", \"1\"))
main_Form.MSComm1.Output = Chr$(5) + \"00FFBRAS055001\"
Do
DoEvents
timedelay 200
Loop While main_Form.MSComm1.InBufferCount <= 4
QV = main_Form.MSComm1.Input
Set ComCls = Nothing

flowers3344 | 2006-8-23 10:45:00 | 显示全部楼层

谢谢gkboy的热心帮助!

[s:309][s:309][s:309]

xstyfm | 2007-4-28 13:31:00 | 显示全部楼层

这个帖子很有价值

GKBOY 高手

kingwang1678 | 2007-8-14 18:07:00 | 显示全部楼层
谢谢,又学了一招
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则