wincc中的控件

我今天看wincc时,看到可以在画面里加MSComm控件,是不是wincc可以使用这个控件使用COM口,可以与其他仪表建立简单的基于COM口的通讯。如果可以请前辈们给个列子,学习学习!我的邮箱是:w1182@sohu.com

最佳答案

以下可以参考,也是别人提供的。
 打开串口
 ub OnClick(Byval Item)      

  Dim objMSComm1, tagConnection
  Set objMSComm1 = HMIRuntime.Screens("Main").ScreenItems("MSComm1")
  Set tagConnection = HMIRuntime.Tags("Connection")
  
  If objMSComm1.PortOpen = False Then
   
   ' Assign com port number
   objMSComm1.Commport = 1
   
   ' Values: 9600 Baud, N - No Parity, 8 - Databit, 1 - Stopbit 
   objMSComm1.Settings = "9600,N,8,1"
   objMSComm1.RThreshold = 1
   objMSComm1.SThreshold = 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 OnClick(Byval Item)   

  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

 发送数据
 Sub OnClick(ByVal Item)  

  Dim tagOutput, objMSComm1
  
  Set tagOutput = HMIRuntime.Tags("Output")
  Set objMSComm1 = HMIRuntime.Screens("Main").ScreenItems("MSComm1")
  
  If objMSComm1.PortOpen = True Then
   tagOutput.Read
   objMSComm1.Output = tagOutput.Value
   tagOutput.Write("")
  Else
   HMIRuntime.Trace("No port is opened!" & vbCrLf)
  End If
  
 End Sub

 读取数据
 Option Explicit
 Function action

  Dim strBuffer, strTemp
  Dim objMSComm1, tagBuffer
  
  Set objMsComm1 = HMIRuntime.Screens("Main").ScreenItems("MSComm1")
  Set tagBuffer  = HMIRuntime.Tags("Buffer")
  strTemp = ""
  
  If objMSComm1.PortOpen = True Then
  
   'read the buffer
   strTemp = CStr(objMSComm1.Input)
   If strTemp <> "" Then
   
    'checking for the delimited character
    If InStr(strTemp, Chr(6)) Then
     strBuffer = Left(strTemp,Len(strTemp)-1)
    Else
     strBuffer = strTemp
    End If
    
    tagBuffer.Value = strBuffer
    tagBuffer.Write
   End If
  Else
   HMIRuntime.Trace("No port is opened!" & vbCrLf)
  End If
  
 End Function

 以上

提问者对于答案的评价:
谢谢了,我回去试了一下可以。

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

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

相关推荐

  • WINCC报表功能

    想使用WINCC的报表功能 计算机上已安装WINCC2008高级版 和运行版 (WINCC授权正常)还要安装那些软件,具体怎么实现报表功能? 最佳答案…

    SIMATIC WinCC 2017年6月27日
  • 两套WINCC 同时监视一套PLC

    最初现场只有一台电脑,这台电脑已经正常运行了,现在新曾加了一台电脑,想把旧电脑的画面复制到新电脑,用wincc自带的项目复制工具复制的,复制过去后可以运行,但是数据连接失败!与PL…

    2017年11月12日
  • wincc安装兼容性问题

    wincc安装过程中报错,电脑里面安装了V14。 图片说明:          最佳答案 完整7.4 &nbs…

    2021年7月5日
  • wincc弹出窗口

    请教下,wincc怎么通过常数1打开指定子画面,并且子画面可以关闭,而不是通过画中画打开,以为在用画面管理打开会就开发界面留下固定窗口 最佳答案 可以直接控制画面窗口的可见性就可以…

    SIMATIC WinCC 2021年7月5日
  • wincc中怎么实现文本记录变量数据啊

    比如说一些变量数据,我以每秒一个的速度用文本形式保存它,然后我又能编辑这个文本变量数据的位置或字体,最后打印出来 最佳答案 通过ddeserver与excel连接,发个邮件给你吧 …

    SIMATIC WinCC 2019年6月11日
  • 如何使WINCC项目归档时间和电脑时间一致

    现在电脑设置的时间,和WINCC项目里归档,就是曲线,什么的图形里面的时间不一致,在哪里修改 问题补充:重新启动了,一次,图表的时候,比电脑时间快了2分钟,运行了几天,现在图表时间…

    SIMATIC WinCC 2019年6月11日
  • 我想用WINCC设置一个弹出画面的按钮,这个按钮弹出的画面必须输入密码再能进去。

    不用用户那个登陆密码,就是单独对按钮设置密码。我这里就是有一个操作画面,是设置重要参数的,但是一般人都不允许去操作,我想设置一下这个按钮,在按一下的时候就提示输入密码,不知怎么做?…

    SIMATIC WinCC 2019年6月11日
  • wincc归档数据有的在后面有u.或者i.怎么处理能让这些字符不显示呢?

    wincc归档数据有的在后面有u.或者i.怎么处理能让这些字符不显示呢?我知道它们代表无效者和插入值,不过我做报表的时候不希望显示这些字符,请大侠们指教 最佳答案 当归档值采集出现…

    SIMATIC WinCC 2019年6月11日
  • 利用WIncc的OPC采集数据

    各位,请教:5个S7-200的cpu,通过PPI与上位机的wincc构成一个系统,中间采用PC access采集数据。但领导查看生产数据,考虑,通过以太网,利用OPC(和…

    SIMATIC WinCC 2019年6月11日
  • wincc中的vb语言好学吗?

    wincc中的vb语言好学吗? 最佳答案 好学,超级好学。而且能够运用到的vb语言都是比较简单的,如果能有个实例的话就更好了。 提问者对于答案的评价:好的

    SIMATIC WinCC 2019年6月11日