回复:C脚本中使用MSCOMM如何发送

dcount107

  • 帖子

    1737
  • 精华

    55
  • 被关注

    30

论坛等级:侠圣

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2009-12-03 09:13:46

6楼

几经努力,这个问题应该算是可以得到解决了,呵呵。

对于字符串来说,C中的ASCII 0代表结束符,而VBS的CHR只支持到0~127,所以要解决这个问题,MsComm控件发送时必须使用Byte()格式的字节数组数据,接收也必须使用comInputModeBinary的接收方式。
不过遗憾的是VBS并不直接支持Byte()格式,其实我们声明的Dim SendByte(x)只是Variant()格式,因此需要想办法将其转换为Byte()格式就能拿来用了。
目前我的做法是用VB编写一个DLL文件,用于实现Variant()和Byte()之间的互相转化。
经测试,0~255的ASCII均可发送和接受,下面是效果图:




示例文件如下(WinCC V6.2 SP3)以及DLL文件(使用之前请选用RegSvr32.exe 注册一下)见附件:

点击此处查看附件
非淡泊无以明志,非宁静无以致远
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32926条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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