请大神来看看我编辑的WICC,C全局脚本

各位大神这是我编辑的WINCC全局C脚本,编译完成没错误。注:”shedingzhi”是用来采样的变量,"data11""data12""data13""data14""data15""data16"是用来显示arry数组值的内部变量,"compare"也是内部变量。
这个程序的主要目的是,每分钟对”shedingzhi”采样六次,每个采样值出现的重复次数存入C[ 7] 数组,通过采样值重复次数是否>=4来置位位"compare",每周期t1=55秒时,执行采样比较计算,采样值arry等于0不执行计数,t1==58秒时将arry置位0。
我遇到的问题是每分钟"data11""data12""data13""data14""data15""data16"采样值都能在输入输出域显示,t1==58秒arry也全都置0,但是到符合"compare"置位1条件C[i]>=4时,输入输出域显示"compare"不执行置位1,对C[i]做输入输出域显示也无统计数字。我编辑的脚本哪里出了问题,请大神指教。注:如果改变"compare"置位1和0的条件对换,倒是能"compare"输入输出域显示0和1的改变,我感觉 t1=55秒时那个程序段没执行。

问题补充:
感谢各位技术大神的解答,下面是我改进后的程序,图2完全达到了目的要求.图1和图2画圈处是两个程序不同处。图1 我用for(i=1;i<=7;i++) 控制c[i]做循环比较运算,但是我发现不能达到目的,当我用输入输出域显示compare的状态时,它不能在触发条件置0或1,请给位再帮我看看,我错在那里,我还是想用for(i=1;i<=7;i++) 控制c[i]做循环比较,该如何改?

图片说明:

请大神来看看我编辑的WICC,C全局脚本    请大神来看看我编辑的WICC,C全局脚本    请大神来看看我编辑的WICC,C全局脚本    请大神来看看我编辑的WICC,C全局脚本   

最佳答案

嗯,你的感觉是正确的
判断c脚本判断是
if(t1==55)
if后面的应该是进去了,但是不执行不是这里的问题
另外,你第一个bi[i]=1,i没有进行初始化啊,有默认值的话,按说也是0,所以后面的应该是不执行的

补充:
因为图一使用FOR循环的时候,当大于4的时候设置变来那个等于1的时候你应该跳出循环,没跳出的话,后面有不大于4的,就把那个点又给复位了

比如c[3]>4,compare=1
但是如果c[4]后面有小于4的,compare就又成0了,这样其实就是以c[7]为准了

提问者对于答案的评价:
是这么个情况,看样我对for循环理解错误了

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

发表回复

登录后才能评论