回复:请问Wincc中采用VBS调用Mscomm控件实现COM端口通讯,Mscomm的Oncomm触发事件应该如何写入?

天涯浪子……

  • 帖子

    60
  • 精华

    1
  • 被关注

    1

论坛等级:游民

注册时间:2006-04-12

普通 普通 如何晋级?

发布于 2007-01-19 09:43:07

0楼

万斑竹说得对,我就是一心想着要从程序里写相应触发控制,忽略了控件本身的属性,想破了头也没想出个所以然来。

要完成此项有3点需要注意:
1、控件注册,现场工控机不可能装VB之类的开发工具,所以需要单独注册Mscomm控件,我在网上找了好几个Mscomm注册的,都能注册成功,但只有最后找到的一个才真正注册上,不需要每次开机都重新注册一次。等我想法再把这个注册Mscomm控件放到这里吧。
2、COM端口的数据收发,Mscomm的属性很多,但基本的如下:
CommPort 设置并返回通讯端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
InputMode 设置并返回接收类型 0字符/1二进制
SThreshold 设置并返回发送时产生ONComm事件的字符数
RThreshold 设置并返回接收时产生ONComm事件的字符数
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向传输缓冲区写一个字符串。

Set objMScomm=ScreenItems("MSComm1") '每一个Com端口对应一个Mscomm控件
objMScomm.CommPort = 1 '...使用Com1口
objMScomm.Settings = "9600,n,8,1" '...设置通讯参数
objMScomm.PortOpen = True '...打开串口

接收或发送数据之前,首先要设置好数据的接受或发送方式,再打开端口PortOpen,一旦满足条件就会触发Oncomm事件,希望数据按事先约定的方式处理就写到Oncomm事件里了。
3、Oncomm事件,最基本的如下:

if objMScomm.CommEvent=2 then '...有接受事件发生
data1 = objMScomm.Input '...接收数据
end if

数据处理这一点请参考上面有谁共鸣提到的http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=5&a_id=284783&s_id=0&num=8#anch 和szy868 的示例
入行探路,未知深浅。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32914条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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