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

相关推荐

  • 西门子TP1200触摸屏,所有模拟量的IO域数值不刷新

    西门子TP1200触摸屏,所有模拟量的IO域数值不刷新,一直是原始状态,只有切换到别的画面后再切回来,模拟量显示数值才刷新,否则一直不变。 钻石用户推荐最佳答案 变量的采集模式有三…

    SIMATIC WinCC 2021年7月5日
  • 关于WINCC与Excel报表若干问题

    通过WINCC的脚本将需要做报表的数据写到指定的Excel文件里面。现在想查询这些保存的数据怎么弄呢?是直接通过按钮写脚本跳到按照时间保存名字的EXCEL文件上还是怎么?如果这样怎…

    SIMATIC WinCC 2019年6月11日
  • 如何通过DP建立Wincc与PLC的连接

    物理连接线已经接完,但是计算机的接口以及驱动设置以及wincc的软件设置不太会,求解答 最佳答案 1、通过DP建立Wincc与PLC的连接,需要在计算机(PC)安装PROFIBUS…

    SIMATIC WinCC 2021年7月5日
  • wincc怎样用vbs脚本打开画面

    wincc怎样用vbs脚本打开画面?在动作里,当一个BOOL变量为ON后,打开一个新画面。该如何实现? 最佳答案 切换主画面可以用IF HMIRuntime.Tags(&…

    SIMATIC WinCC 2019年6月11日
  • 设备颜色控制VB控制

    用VB实现以下功能; 设备运行状态、红色; 设备停止状态、绿色; 设备故障状态、闪黄色; 当设备发出打开状态信号而设备的运行反馈信号还未到达…

    SIMATIC WinCC 2019年6月11日
  • V14数组地址问题

    在V14中,建立一个数组a[1..100] int形式,那么数组a[1]到a[100]共100个整数,那么每个整数都有8个位(16还是8我忘了),但我需要里面的每个位的值…

    SIMATIC WinCC 2017年6月3日
  • 归档变量,查询值为空

    各位好!背景:安装了connectivity pack安装包,授权成功,显示->正在使用; 想通过Tag:R读取变量值到CSV文件;现在是 能够…

    SIMATIC WinCC 2021年7月5日
  • wincc画面为什么不能按照属性中的几何尺寸显示?

    只想要一个小画面显示,就在画面的属性“几何”设置画面宽带300,高度200,可是为什么激活后不是按照这个尺寸显示呢?我试着重新设置了计算机属性“图形运行系统”“窗口属性”中的每一项…

    SIMATIC WinCC 2019年6月11日
  • 触摸屏库中显示:需要测试环境才能编辑类型或版本

    触摸屏库中显示:需要测试环境才能编辑类型或版本 最佳答案 有一些控件由于触摸屏是精简型,部分控件功能是不支持的。 提问者对于答案的评价:尽管不是我需要的答案,但是还是谢谢。

    SIMATIC WinCC 2021年7月5日
  • wincc安装需要IIS吗

    我在安装WINCC的过程中提示要安装IIS,需要安装?还有装授权的时候提示DIE LIZENZ WURDE INSTALLIERT是什么意思啊 最佳答…

    SIMATIC WinCC 2019年6月11日