网站网站制作怎么样/河南自助建站seo公司
我做了简单的测试 works2 1.77f
在函数内写了以下句子
IF ok
Par:=TRUE;
ELSE IF ok>In_2 THEN
Par:=FALSE;
END_IF;
END_IF;
函数:=Par;
在主程序调用了以上函数
传入参数:函数(ok,In_1,In_2) ok,In_1,In_2参数都是word型 函数返回值bool型
点位1:=函数(ok,5,9);
点位2:=函数(ok,11,20);
我理解情况是:
1:设定ok值为 0 那么 点位1 点位2 都为true
2:设定ok值<5那么 点位1为true 点位2true
3: 设定ok值>=5且<9 那么 点位1为false 点位2true
4:设定ok值为11~20 那么 点位1为false 点位2false
5: 设定ok值为>=20 那么点位1false 点位2false
实际情况是:
1:设定ok值为 0 那么 点位1 点位2 都为true
2:设定ok值<5那么 点位1为true 点位2true
3: 设定ok值>=5且<9 那么 点位1为true 点位2true
4:设定ok值为11~20 那么 点位1为false 点位false
5: 设定ok值为>=20 那么点位1false 点位2false
为什么实际情况下ok值未超过20时 点位2却false了呢 ??
如果上面的问题是因为函数释放了 ok值取值在11~20时未运行 点位2复位为初始false状态
那么点位1 为什么在ok值取值为5~9时 点位1又为ture状态
是程序运行问题吗?
用西门子scl使用同样代码他的结果是函数未得到运行则无论点位1,点位2都初始为false的情况