西门子200PLC中主程序中的(TEMP)临时变量和子程序的TEMP能不能定义一样,如果定义一样(符号名一样)

西门子200PLC中主程序中的(TEMP)临时变量和子程序的TEMP能不能定义一样,如果定义一样(符号名一样),第1张

L作为临时区,由系统分配与管理,因此,同名的TEMP变量不会前则引发问题,前提是程序员遵守先赋值后调用的原则,TEMP变量,系统并不负责释放。

例如:当L0被分配给主程序TEMP变量时,调用子程序时,该变量的值已经被子程序中的TEMP变量替代,所以如果下侍悔谨次主程序读取该变量时,因为系统不负责释放,该地址的老基值就是子程序的,会造成逻辑上的混乱,所以,对于TEMP变量来说,只要遵守先赋值后使用,就不会有任何问题。

这个是由于子程序的调用指令没找到签名或签名参数一致的子程序的原因,打个比方说,当你从别的程序里复制了一部分程序(程序中含调用子程序的指令)到新建的程序中时,由于此时你只复制了子程序的调用指令而并没有复制子程序本身,这个锋耐春时候如果你在新建的程序中按照要调用的子程序的名称创建子程序时,由于程序块中调用子程序的指令是从别的程序里拷过来的,而子程序本身(即“指令”列表中“调用子程序”里的子程序)是在新建程序中创建的,尽管名称是一致的,但是却不是同一个子程序,程序块中子程序的调用指令指向的却不是“指令”列表中“调用亩隐子程序”里同名的子程序,编译时就会出现“未找到请求的签名或签名参数”的错误,意思就是调用银耐指令没找到签名或签名参数一致的子程序。

不能,这是PLC的常规错误,比如你一个点要输出,一个点不要输出颂并,PLC不能保证其结果的正确性仿樱做,最终导致不可预知的错误,正确的做法备衡是需要多个条件输出时都用内存变量进行逻辑判断然后再输出。

任何PLC都是这样的,初学者最容易犯这样的错误


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12403310.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存