您现在所在的是:

人机界面

回帖:0个,阅读:3109 [上一页] [1] [下一页]
983
fanxt
文章数:12
年度积分:50
历史总积分:983
注册时间:2005/10/9
发站内信
发表于:2009/8/27 13:25:27
#0楼

[COLOR="#000000"]查了一下前面各位大侠所提的有关此方面的问题,加上这两天的试验,总结一下,提出问题,希望各位大侠指点。 [/COLOR]
[COLOR="#000000"]前面已有“醉夜清风”、“hihihi”、“博雅”等朋友提出过,参见以下所例帖子: [/COLOR]
http://www.ad.siemens.com.cn/club/bbs/post.asp?myreply=&b_id=5&a_id=198857&s_id=0&num=23#anch

http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=5&a_id=197801

http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=5&a_id=130952

[COLOR="#000000"]1、使用c脚本: [/COLOR]
     
参见“醉夜清风”在“希望高手参与讨论--在wincc中实现利用mscomm控件与串口通讯”中所提到的方法,使用四种函数对mscomm控件的属性值
进行读写。在网上查了一下,好像是参照一篇论文《mscomm与c在监控系统和智能仪表的串行通讯中的应用》的。下载了这篇论文看了看,写得很简约,实在
有些怀疑作者是否真的是用这种方法实现的。
[COLOR="#000000"]       用这种方法试了一下,对串口进行打开、关闭的控制没问题,试图编写读写数据的控制时,感觉太麻烦了,于是暂时放弃。 [/COLOR]
[COLOR="#000000"]2、使用vbs: [/COLOR]
[COLOR="#000000"]       这个花了一天多的时间。 [/COLOR]
[COLOR="#000000"]       现在做到了以下功能:串口的打开、关闭控制;数据的接收;ascii码的发送(非ansi码,仅包括其前127个字符)。 [/COLOR]
[COLOR="#000000"]       现在主要待解决的问题是这样的: [/COLOR]
     
对于ansi码的后120多个字符的发送,在vc、vb中的代码均可以实现,其中vc中可以以cbytearrry数组实现、vb中是以byte数组实
现。但在vbs中如何实现,现在还没有找到办法,查阅了vbs的说明,并且试验了,使用chr()函数肯定不行,因为其只能将ascii字符转换成
ascii字码,不能正确转换字码>&h7e的ansi字符,查看了网上的介绍说,要使用二进制方式进行传输,也就是说要使用variant型变量的
byte子类型进行,但我试着将一个byte类型数据赋值给comm.output后,并没有反应。而字符型或字符串型均可,包括unicode字符都可
以正常传输。
[COLOR="#000000"]       再后来我将两个串口对接,用串口调试助手向wincc中发送各种数据,在oncomm事件中将收到的数据从comm.input赋值给comm.output,直接发出去,也都可正常显示。[/COLOR]
从com口接收的数据也是variant型数据,直接输出到wincc中的一个无符号8位数据的变量,也可正常显示,也就是说接收的问题已解决,完全可以进行下一步的解析处理了。
[COLOR="#000000"]        在vbs中调用api函数肯定不行,在网上也有这方面的介绍。 [/COLOR]
[COLOR="#000000"]        前面有个帖子里,“博雅”兄说不能在vbs中调用mscomm,但我感觉并不是不能用,现在我已经做到这一步了,可以说关键问题只剩下最后一步了(变量赋值的问题了),要放弃实在是有点可惜啊! [/COLOR]
[COLOR="#000000"]        如果设备的通讯代码只用ascii方式,那么在vbs中调用mscomm控件到是可行的了。 [/COLOR]
[COLOR="#000000"]        前面几位仁兄大概也曾为此问题困扰过,不只现在问题是否得到解决了,能不能出来给个提示啊。 [/COLOR]
[COLOR="#000000"]        要是在vbs中确实没有办法解决,下一步准备在c中用api调用试一下,可是那对我来说太难了,痛苦啊痛苦啊………[/COLOR]
[COLOR="#000000"]  偶然在微软网站上发现了此问题的解决方法: [/COLOR]
 下载一个ads.dll,注册;    vds.dll的下载地址是:
http://support.microsoft.com/kb/250344/en-us
 在wincc中用vbs脚本,比如:

----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=98640&Name=fanxt

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003