技术论坛

 回复:关于WINCC串口通讯的讨论

返回主题列表
作者 主题
柳絮飘飘
游民

经验值:131
发帖数:48
精华帖:0
楼主    2008-07-01 10:52:57
主题:关于WINCC串口通讯的讨论
以前也有过好多朋友提到过WINCC串口通讯的问题,但是大家只是进行了讨论,最终也没有形成一种结论性的东西。在这里我想抛砖引玉,再次提出这个问题,希望大家参与讨论。

我最近用VBS做了一套程序,在WINCC中启动画面上加载了控件MSComm和按钮1,按钮1链接了一个VBS鼠标动作,主要是对串口进行初始化。在MSComm中组态了一个oncomm事件,利用事件触发的形式对串口进行读写操作。在按钮1的鼠标事件中我做端口初始化,具体代码如下:
Dim objMSComm,tagConnection
Set objMSComm=HMIRuntime.Screens("Main").ScreenItems("MSComm")
objMSComm.CommPort = 1
objMSComm.Settings = "9600,N,8,1"
objMSComm.InBufferSize = 40
objMSComm.OutBufferSize = 7
objMSComm.InputLen = 1
objMSComm.SThreshold = 1
objMSComm.InputMode = comInputModeBinary
objMSComm.RThreshold = 1
objMSComm.portopen=True
MsgBox "port open"
设置完后我想再弹出一个窗口,说明串口已经打开,初始化完成。我使用个了MsgBox "port open"。可现在的问题是:为什么这个窗口没有打开,也没有弹出port open的提示。不知道是为什么?
哪位做过WINCC的串口通讯,请谈谈你们的看法!
H.L
侠圣

经验值:2881
发帖数:1766
精华帖:9
    2008-07-01 18:09:51
精华帖  主题:回复:关于WINCC串口通讯的讨论
我最近刚做了一个这样的项目,上次在北京还向城斑,有谁共鸣两位斑竹请教过,以下是打开和关闭串口的代码,通过诊断窗口来调试比较方便,你可以监视到所有的收发信息,不要使用Msgbox来做。其它代码还未来得急整理,整体使用效果还不错。
Sub procedure20
,打开串口
Dim objMSComm1
Dim tagConnection
Set objMSComm1 = HMIRuntime.Screens("Main").ScreenItems("MSComm1")
Set tagConnection = HMIRuntime.Tags("Connection")
If objMSComm1.PortOpen = False Then
objMSComm1.Commport = 1
objMSComm1.Settings = "9600,e,7,1"
objMSComm1.InputLen = 0
objMSComm1.PortOpen = True
tagConnection.Write(True)
HMIRuntime.Trace("Port open." & vbCrLf)
Else
HMIRuntime.Trace("Port is already opened." & vbCrLf)
End If
End Sub

Sub procedure1()
‘关闭串口
Dim objMSComm1, tagConnection
Set objMSComm1 = HMIRuntime.Screens("Main").ScreenItems("MSComm1")
Set tagConnection = HMIRuntime.Tags("Connection")
If objMSComm1.PortOpen = True Then
objMSComm1.PortOpen = False
tagConnection.Write(False)
HMIRuntime.Trace("Port close." & vbCrLf)
End If
End Sub
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。