谁知道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日 下午12:18
下一篇 2019年6月11日 下午12:18

相关推荐

  • WINCC多个变量显示一个画面

    现在有一个阀门 有开,关,故障三个DI开关信号,我想做在一个阀门画面上,哪个过来就显示不同的颜色,请问有什么简单的方法没有,最好不要写脚本什么的。 最佳答案 方法参见:&…

    SIMATIC WinCC 2019年6月11日
  • WINCC6.0如何与RS485装置通迅

    我想用WINCC6.0读取电力监测表的电量参数,如电流,有功等,电力表是MODBUS通迅协议,通过RS485端口通,请问各位大侠我该如何来做,谢谢. 最佳答案 用第三方软件KEPS…

    SIMATIC WinCC 2019年6月11日
  • WinCC 系统软件

    请问WinCC 系统 SW V7.4 SP1 亚洲版有中文的吗,好像查资料显示的5种语言 是(德语,英语,法语,西班牙语…

    SIMATIC WinCC 2021年7月5日
  • vb客户端程序问题

    两台电脑,一台装wincc,做服务器,一台用vb写程序做客户端访问wincc变量,写了一段连接程序,发现连不通,是不是服务器dcom要做什么设置?或者其他什么原因? 问题补充:是用…

    SIMATIC WinCC 2019年6月11日
  • wincc 触摸屏界面卡死

    某空压机现地的西门子触摸屏,现地一直在故障界面卡死,PLC和触摸屏断电重启还是卡在同样的界面,这是什么原因?空压机报了大修故障,这个对触摸屏会不会有影响? 图片说明:  …

    2021年7月5日
  • wincc报警器的使用问题

    像我现在这么设置能否实现不同报警触发不同声音吗?求各位大神指点 最佳答案 使用horn声音报警吗?《WinCC跟我做:WinCC实现声音报警的方法》http://www.ad.si…

    SIMATIC WinCC 2021年7月5日
  • Wincc 不能打开页面报表编辑器!!

    Wincc 不能打开页面报表编辑器!! 提示“OLE-connection to CSApi invalid:800401f3&n…

    SIMATIC WinCC 2019年6月11日
  • WINCC6.0光盘复制到计算机的硬盘上

    我有一张WINCC6.0的正版的光盘想复制到计算机的硬盘上.可是在复制的过程中总是有些文件不能复制.提示需要跳过.我原来也复制过5.1但那是刻录的.是不是正版的都不能完全复制.请问…

    SIMATIC WinCC 2019年6月11日
  • WINCC自动执行的问题

    我用WINCC和S7-300的用以太网通信,中间经过光纤和网络交换机。 在WINCC里做了一些按钮分别远程控制几台泵的启动和停止,现在有台泵总是在没有在WINCC上操作的…

    SIMATIC WinCC 2019年6月11日
  • 使用SetTagByte函数如何赋变量值

    我想通过C脚本实现将一个内部变量的值赋给另一个内部变量,但是SetTagByte函数好像只能给变量赋常量,那应该怎么实现变量的赋值呢(用C脚本),谢谢高手指点 最佳答案 SetTa…

    SIMATIC WinCC 2019年6月11日