1.FC中对In,Out及InOut区基本型变量只能设置基本型覆盖变量,且长度要一致,实用意义不大;
问题1. 基本型是指的什么 Word?
问题2 我现在建立了一个FC, 已经对FC属性进行了不优化的块访问设置, FC的入口参数为一个Word型变量Temp, 并且紧接着对Temp进行了bool类型的覆盖atTemp[0...15],在OB1中,调用FC,输入设置为1, 通过监控,可以看到已经赋值。 在FC中,调用#atTemp[0], 通过监控发现其不为1, 不知为何。 在FB中同样进行此操作,结果一样。
我如果将IN变量赋值给同类型的TEMP变量,然后再对TEMP进行覆盖,进行覆盖后的位操作,是没问题的。
问题出在哪里? 我看手册说到是可以对FC FB 的IN INOUT OUT TEMP 区进行变量覆盖的。
最佳答案
1.基本数据类型包括:bool,byte,word,dword,int,dint,date,time,s5time,char.
复合数据类型:array,struct,data_and_time,string.
2.参考一下截图。应该没问题才对啊。
图片说明:
提问者对于答案的评价:
还是没找到问题,我现在是将要覆盖的变量作为FC的输入传送给FC, 在FC里建立TEMP变量, TEMP = 要覆盖的变量, 再对TEMP进行位覆盖,再位操作。
专家置评
看帮助,注意AT的使用注意事项。
规则
对于变量覆盖可适用以下通用规则:
● 在 STL、LAD、FBD 和 GRAPH 中,S7-1200 和 S7-1500 允许变量覆盖。
● SCL 支持在所有 CPU 系列中覆盖。
● 可以在以下块中覆盖变量:
– 在标准访问的代码块中
– 在可优化访问具有保留设置“在 IDB 中设置”的变量的代码块中
● 覆盖变量数据宽度必须小于等于被覆盖变量的数据宽度。
● 不可以覆盖 VARIANT 和 INSTANCE 数据类型的变量。
● 无法覆盖库中声明为接口中参数的块。
● 无法无法覆盖接口中声明为参数的结构化 PLC 变量。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc186924.html