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

相关推荐

  • 触摸屏、以太网与PLC通讯

    CPU224通过以太网模块CP243-1与触摸屏1000IE通讯不上,怎么搞?可以用以太网下载程序了,应该算是配置好了吧?但是连到触摸屏通讯不上,应该再查哪里呢?初学者,请老师教教…

    2021年7月5日
  • 退出WinCC画面

    WinCC设置中已经屏蔽了一些键,除了Alt+F4,还有没有其他办法退出画面。 最佳答案 当然首选还是使用ALT+F4来关闭当前画面,这样可以不退出wincc项目,但是如果实现是实…

    SIMATIC WinCC 2019年6月11日
  • 博图安装出现问题

    安装出现以下问题,不能继续安装,请问怎么解决。先决条件不满足检测到windows系统设置于该安装过程不兼容。请联系系统管理员更改windows中的DCOM设置。在安装过程中,Def…

    2021年7月5日
  • 2个wincc怎么通过OPC互相访问?

    我百度过后,设置了DCOM,设置了IP地址。IP地址ping过了,没问题;DCOM,在OPC上,能看到自己wincc在上面了;但是看不到对方的OPC,什么情况? 图片说明: &nb…

    2020年11月1日
  • 如何获取窗体内鼠标指针所定位的控件的信息

    %ignore_a_1%中的控件,如I/O域等,当鼠标移动到其上时,鼠标的显示样式放生了变化,该控件或说系统是如何判断鼠标移动到其上了?移动到其上后,控件和系统的哪些信息发生了变化…

    SIMATIC WinCC 2021年7月5日
  • prosave安装问题

    本人需要用以太网连接笔记本与SMART700IE v3触摸屏,根据网上所说,我准备下载一个Prosave来完成OS更新,之后下载了一个prosaveV9.0.3.0版本的…

    SIMATIC WinCC 2021年7月5日
  • WinCC Audit V7.4SP1无法激活功能

    如图所示,WinCC Audit V7.4SP1,Audit Editor页面,无法激活Audit记录功能,选择框无法选择,求教是什么原因,我看了官网…

    2021年7月5日
  • 触摸屏TP177B技术咨询

    公司有块西门子TP177B PN/DP-6 CSTN触摸屏,不知道用什么组态软件来编辑,请指教,另外可以用博途WINcc编辑吗?  序列号是…

    2021年7月5日
  • wincc运行时变量质量为4报寻址错误,类型与程序中定义的类型都是一样的。

    wincc在连接PLC运行时变量质量为4报寻址错误,并且无法接收或更新变量的值,删除后重建还是不行,检查了变量类型与程序中是一样的。实在是搞不明白,请哪位大侠帮帮忙,解决下,小弟不…

    SIMATIC WinCC 2019年6月11日
  • WINCC V6.0数据库查询

    我用的WINCC V6.0现在想用DELPHI编个外挂程序查询WINCC的SQL数据库  但是现在的问题是我该查询哪个  &nbs…

    SIMATIC WinCC 2019年6月11日