关于Wincc的两个C代码问题

1 分别采集了从站1的数据a1,b1,c1,d1,e1;从站2的数据a2,b2,c2,d2,e2..........以此类推,共30个从站,且a1,a2......数据类型都相同,我想在Wincc中建立一个赋值功能,一个内部变量n,如当n=1时,内部变量a=a1,b=b1......如果用C代码实现以上功能,有什么简洁的方法呢,我想的是用case语句但也要很长,有什么语句能实现a=an吗?
 2 我想让内部变量a(无符号八位数)加上1后赋值给内部变量b(无符号八位数),应该怎么实现呢?SetTagByte能否实现呢?
 麻烦各位高手指点

问题补充:
在1中,不仅仅是n=1情况,还有n=1,2,3.....的情况,具体是哪种情况由操作者来决定

最佳答案

2.  setTagByte("b",getTagByte("a")+1)
 1.定义一个结构元素分别为a,b,c,d,e的结构,然后建立数据类型为该结构的结构变量30个,当n=1-30中的任意值时,用以下代码可为任一个从站赋值到所定义的1-30的内部结构变量,同时将这30从站的变量也定义为与上述内部变量具有相同结构的外部变量。如果该数据类型为byte的话,假设内部结构变量都有一致的前缀如st1,st2,...st30;外部结构变量的前缀为plcSt1,plcSt2,...plcSt30:
 dim tagName(30),objTag(30),i,plcTagName(30),objPlcTag(30)
 for i=0 to 29
    tagName(i)="st" & i+1 
   set objTag(i)=hmiRumtime.tag(tagName(i))
   plcTagName(i)="plcSt" & i+1
  set objPlcTag(i)=hmiRumtime.tag(plcTagName(i))
  objTag(i).value=objPlcTag(i).read
  objTag(i).value.write
 next 
 上述代码针对的是所有30各从站的采集数据的赋值,如果仅仅是针对任意个从站的话,可不要循环语句,将i作为从站号即可。上述代码用VBS脚本写的,也可以根据该原理采用C脚本完成

提问者对于答案的评价:
恩  非常感谢
 

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

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

相关推荐

  • 请教wincc opc 通讯

    请问,用IFIX做的系统大平台,要采集我做的WINCC上位机数据,请问想要实现所述功能,在Wincc端如何设置呢,一般情况下Wincc如何与其它平台通讯的呢?听说过OPC,但没搞过…

    SIMATIC WinCC 2019年6月11日
  • wincc7.5学习文档

    wincc7.5学习文档 最佳答案 这个页面下找找你需要的手册,https://support.industry.siemens.com/cs/search?search=winc…

    2021年7月5日
  • Wincc CRC校验

    如何用vb实现CRC(循环码)校验?  最佳答案 STEP7编写的不好找,VB编写的网上多的是,呵呵! Function CRC16(data()&n…

    SIMATIC WinCC 2019年6月11日
  • WINCC中外部变量问题

    WINCC中外部变量如何知道其对应STEP7中的哪个变量?我看在WINCC中外部变量的名称与STEP7中不一样,参数(地址)中地址也与STEP7中对应不上,如何能对应上? 问题补充…

    SIMATIC WinCC 2019年6月11日
  • wincc 画面切换(SetTagBit)

    我在看一个已经做好的系统,切换画面用的方法是在C脚本中,用SetTagBit()函数实现。比如:在主页面有个【画面二】按钮,在属性的C脚本中会有这么一句:SetTagBit(“hu…

    SIMATIC WinCC 2017年8月3日
  • 如何将现场的WINCC画面数据送到办公室电脑显示?

    我们现场现在有三条生产线,每个生产线都配有一台工控机,用WINCC监控现场的信号,然后现以做了个二级通讯,将三条生产线的工控机通过交换机连接起来了,构成一个环网,这样每个生产线也可…

    SIMATIC WinCC 2019年6月11日
  • WINCC 下拉菜单的做法

    请问一下:我最近在做WINCC 6.2的组态,我想做个下拉菜单,下拉菜单中有一些内容(自己定义的),鼠标点击下拉菜单的内容,就会给所选的内容赋值 问题补充:谢谢各位,能不…

    SIMATIC WinCC 2019年6月11日
  • wincc整型变量输入如何显示字符串

    现WINCC输入为VB1001-1016,变量类型为BYTE,如何让人机屏上的I/O显示为字符串形式. 最佳答案 I/O域的显示类型设置为S I/O设置为字符串变量 提问…

    SIMATIC WinCC 2019年6月11日
  • wincc 7.4 监视器键盘为什么有时候显示不全???

    wincc 7.4  监视器键盘为什么有时候显示不全???只显示一部分??? 最佳答案 IO域的话,出现的是数字键盘。密码输入的话出现的是全键盘。根据…

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

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

    SIMATIC WinCC 2019年6月11日