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进行覆盖,进行覆盖后的位操作,是没问题的。
问题出在哪里?我看手册说到是可以对FCFB的ININOUTOUTTEMP区进行变量覆盖的。
最佳答案
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变量。