wincc串行通讯

请问用WINCC软件如何做一个类似串口调试助手的东西,实现简单接收和发送功能即可。
我在WINCC中加入了MSComm控件,想用VB编程实现?

问题补充:
我建立了两个内部变量,串口输出COM_OUT;输入COM_IN。
   添加按钮,并对MSComm初始化,
   sub onlbuttondowm(byval item,byval flag,byval x,byval y)
   dim mscomm
   set mscomm=screenitems("mscomm")
   mscomm. comport = 1 ;使用串口1
  mscomm.settings=“9600 ,n ,8 ,1”;设置传输波特率,数据位等
  Mscomm. Inputmode = 1 ;设置数据输入模式为二进制数据格式
  Mscomm. portopen = true ;开始串口发送
  end sub

   关键如何把需要的字符串进行读取和发送,这块请高手详细讲解一下!!谢谢

最佳答案

用VBS写吧!
 论坛上的例子:
 [转]
 偶然在微软网站上发现了此问题的解决方法:

 
 下载一个ADS.DLL,注册;

 在WINCC中用VBS脚本,比如:

 Dim cnvt

 Dim Temp()

 Dim obj_s_Com

 Dim sOutput

 
 Set cnvt = CreateObject("ADs.ArrayConvert")

 Set obj_s_Com = ScreenItems("m_Com")

 obj_s_Com.CommPort = 1

 
 Redim Temp(2)

 
 Temp(0) = &heb

 Temp(1) = &h90

 Temp(2) = &h71

 
 Dim v,v1,v2,v3,v4

 v = Temp

 HMIRuntime.Trace "The V is:" & VarType(v) &" " &TypeName(v) &vbCrLf

 ''obj_s_Com.Output = v

 
 v1 = cnvt.CvOctetStr2vStr(v)

 HMIRuntime.Trace "The V1 is:" & VarType(v1) &" " &TypeName(v1) & " " &vbCrLf

 ''obj_s_Com.Output = v1

 
 v2= cnvt.CvStr2vOctetStr(v1)

 HMIRuntime.Trace "The V2 is:" & VarType(v2) &" " &TypeName(v2) & " " &vbCrLf

 ''obj_s_Com.Output = v2

 
 v3 = cnvt.CvOctetStr2vHexStr(v)

 HMIRuntime.Trace "The V3 is:" & VarType(v3) &" " &TypeName(v3) & " " &vbCrLf

 ''obj_s_Com.Output = v3

 
 v4 = cnvt.CvHexStr2vOctetStr(v3)

 HMIRuntime.Trace "The V4 is:" & VarType(v4) &" " &TypeName(v4) & " " &vbCrLf

 
 obj_s_Com.Output = v4

 
 我们可以发现比如>&H7E的ANSI字码也可以通过串口正常发送。

 这样从可行性上来讲,任何不同的串口通讯协议都可以在WINCC中采用MSCOMM控件加VBS脚本来实现。只要你不嫌麻烦,我们可以用小点数的WINCC来实现更多的外部数据量的采集。

 不知大家以为然否?

 
 VDS.DLL的下载地址是:http://support.microsoft.com/kb/250344/en-us
参考资料:http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=5&a_id=284783&s_id=0&num=12#anch

提问者对于答案的评价:
^_^

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc278930.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 下午2:22
下一篇 2019年6月11日 下午2:23

相关推荐