谁知道Wincc与PIC18系列单片机如何通讯?

正在做一个项目要求Wincc能够与PIC18系列的单片机通过串口通讯,但是不知道如何实现。有谁能够帮我解决这个问题?

问题补充:
通过MODBUS rtu 协议传输,协议中说到数据帧之间以3.5个字符为间隔,3.5个字符传输的时间就1.5ms,这么短的时间,wincc能够捕捉到吗?

最佳答案

能做到,而且方法很多:
  1.可以用WinCC+MsComm控件直接编程读取
  2.用VB/VC+MsComm控件读取后通过OPC/DDE/OLE等其他方式再转至WinCC。

  用MsComm控件怎么做串口通讯应该不用我说了吧,^_^,网上的代码一搜一大框。

  第1种方法:WinCC支持VBS,也支持Windows控件,因此使用方法跟VB差不多。发送需要用全局脚本定时发送:
  Dim oMsComm
  Set oMSComm = HMIRuntime.Sceens("CommPdl").ScreenItems("MSComm1") ‘#获取MsComm控件
  If oMsComm.PortOpen = True Then ‘#判断串口是否已经打开
   oMsComm.Output = "Sending Char" ‘#发送代码
   ……..
  End If
  如通讯成功并接收到字节时,将触发控件的Events->Object Events -> OnComm事件,在此编程接收字节并进行校验即可。
  Sub OnComm(Byval Item)     
  ‘HMIRuntime.Trace  Item.Input & vbCrLf
  …….你的校验代码
  End Sub
  该方法可能会占用WinCC大量资源,且稳定性较差。

  第2种方法:VB/VC通过MsComm控件将数据读上来后,可通过OPC/DDE/OLE将数据传递给WinCC。OPC Client方式网上有现成代码,不过较为复杂。DDE已经没有多少人用了,最简单的应该是OLE方式了。
  这里以VB6为例,选择工程 -> 引用,引用WinCC HMIRuntime 1.0 Type Library,下面是如何将值传给WinCC的Tag
   Dim oWinCCRT As New CCHMIRUNTIME.HMIRuntime
     oWinCCRT.Tags("MyTag").Write 100.0 ‘这里改成你自己的Tag和值就可以了。
  

 补充:没有问题的,其实时间是由Master来掌握的。如果你对WinCC不放心,那就用VB好了,^_^。

提问者对于答案的评价:
专业,认真。谢谢啦!

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

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

相关推荐

  • 泵的动态显示

    我在WINCC中增加了各水泵,现在我有三个图片,通过改变变量达到三个图片呼唤,形成转动的效果,请问怎么做,谢谢!用C语言怎么做,用变量又怎么做?? 最佳答案 用智能对象中的状态显示…

    SIMATIC WinCC 2019年6月11日
  • SQL 2005的安装问题

    安装WinCC自带的SQL2005的时候总是提示: There was an unexpected failure du…

    SIMATIC WinCC 2019年6月11日
  • 请问,wincc中,如何指定默认更新周期?

    Wincc中默认更新周期是2s,而我想要250ms。每次新加一个动态,都得手动把2S改成250ms,数量一多非常麻烦且容易忘。有没有办法默认更新周期就是250ms,也就是每次我新建…

    2017年12月9日
  • win7 32位系统安装wincc和s7哪个版本好!32位与64位win7系统安装西门子这些程序有没有区别

    win7 32位系统安装wincc和s7哪个版本好!32位与64位win7系统安装西门子这些程序有没有区别。另外有没有安装方法及步骤教程,麻烦发下链接。谢谢! 最佳答案 …

    SIMATIC WinCC 2021年7月5日
  • 通过IE访问WINCC发布的画面无法显示

    输入用户名密码进入后,显示如下的的画面,为什么会这样?我浏览器的设置都已经设置好了,就是本地Internet的自定义里面该启动的项目都启动了,为什么看不到画面?急!!!!求指教! …

    2017年11月23日
  • 关于2台PLC通过wincc通讯的软件问题

    2台200PLC (A和B)通过以太网与上位软件WINCC通讯。 问题: 如何通过wincc实现A标志位控制B标志位? 请高手们给出详解,谢…

    SIMATIC WinCC 2019年6月11日
  • MP277变量

    我用WINCC FLESXIBLE2008SP2做了几个画面,变量一共是100多个,点击启动运行系统后,项目运行,但是提示组态了过多的变量,那我的授权2008RUNTIM…

    SIMATIC WinCC 2018年12月14日
  • wincc分屏显示的时候切换画面的操作

    看到官方的文档只是简单的介绍如何分屏,假如 我在1号显示器显示画面1,2号显示器显示2,当我在切换画面的操作的时候,在2号画面想显示1号画面,这个是怎么分辨的呢??? 问…

    SIMATIC WinCC 2021年7月5日
  • web IIS证书

    第一次运行WEB  IIS组态的证书如何解决 最佳答案 可以自己创建一个“自签名证书”https://cache.industry.siemens.com/dl…

    SIMATIC WinCC 2021年7月5日
  • WINCC求助:急!!!

    因为报警消息控件,WINCC瘫痪了! WINCC本来运行正常,只因为我加了个报警画面,在画面里添加了一个报警控件,用来显示消息列表。结果激活该画面做模拟运行时,激活到5%…

    SIMATIC WinCC 2019年6月11日