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日
下一篇 2019年6月11日

相关推荐

  • your software lisense has expired

    your software lisense has expired please obtain a …

    SIMATIC WinCC 2019年6月11日
  • 串口与wincc通讯

    我要做用wincc读取一个智能仪表的读数,智能仪表支持R232串口通讯,日本的仪表,厂家没有相关的读取读数的程序,需要我自己写一个。哪个老师有相关wincc与串口通讯的案例,给我发…

    SIMATIC WinCC 2017年6月19日
  • wincc报表时间列时间的设置

    用wincc6.0做了一个报表,列表示每一个变量,行则表示时间,现在我想实现:1.数据间隔为2个小时记录一次;2.只打印该天的数据(即从0点到24点的数据,12行)并且只打印改天的…

    SIMATIC WinCC 2019年6月11日
  • 报警记录的备份功能的疑惑

    报警记录的备份功能是用来保存超过分段时间/尺寸将被覆盖的老数据的吗?还是用来保存当前存在的数据段以防丢失的呢? 如果是保存将被覆盖的老数据的,那我是不是通过它可以让WIN…

    SIMATIC WinCC 2019年6月11日
  • wincc中为什么报警记录那一栏打不开,变量记录打开出现连不到数据库

    我流程画面弄好了!现在要做报警,然而打开“报警记录”却打不开,里面没有对象存在!打开“变量记录”提示连不到数据库,这个是怎么回事,那个地方出问题了!我第一次使用,请高手指点! 问题…

    SIMATIC WinCC 2019年6月11日
  • WINCC 授权的位置

    我把WINCC的授权从U盘转移到D盘后,为什么只能从授权管理器进入才能看到它,而从“我的电脑”进入D盘就看不见? 最佳答案 哦,你需要在文件夹选项上把“隐藏受保护的系统文件”前面的…

    SIMATIC WinCC 2019年6月11日
  • C#编写的OPC客户端是否可以访问wincc内部变量

    C#编写的OPC客户端是否可以访问wincc内部变量,内部变量的作用一直不是很清楚,请高手能提供解答或资料 最佳答案 1.wincc变量有两种:分内部变量和外部变量.外部变量是和W…

    SIMATIC WinCC 2019年6月11日
  • WINCC V6.2 画面编辑器中Y轴坐标反了

    WINCC V6.2 画面编辑器中Y轴坐标反了,就是说鼠标往上运动的时候,Y轴坐标逐渐减小,而鼠标往下运动的时候,Y轴坐标逐渐增大,和常规的XY轴坐标理解方式反…

    SIMATIC WinCC 2018年3月6日
  • WINCC7.0 无法装载文件prtexpl.dll

    我安装的WinCC 7.0中文版西门子上位机组态软件,前段时间一直正常使用编程组态和监控,可是最近打开编程组态SIMATIC WinCC Explor…

    2017年10月24日
  • 回车脚本

    & vbCrLf &""& vbCrLf & 这个脚本是2次回车,为什么中间需…

    SIMATIC WinCC 2021年7月5日