我现在正在为一台德国磨床修改程序,用户因为产品发生变化需要在PROC语句中定义更多的变量进行参数传递,但是在执行时却总是会出12340报警,意思就是定义的变量超出了限制。这个PROC定义的子程序原来是有39个变量,现增加到49个变量,可是执行程序就会出现12340报警,应该是厂家在编程时在哪里对PROC语句传递参数的数量进行了限制,不知哪位高手能指点指点,这限制会在哪个地方。
需要指出的是,在一个加工程序里定义了好几个子程序,子程序都通过PROC语句传递参数,而每个子程序对变量的数量限制还不一样,都是超过厂家最开始定义的变量数就会出错。
系统为Siemens Sinumerik 840D
最佳答案
1)首先确定的是PROC语句允许传递参数的个数是在NCK中永久设置了,用户无法改动。
2)840D系统允许传递参数的个数最大为127个,即并未达到上限。
3)PROC语言允许传递的参数个数是在系统语言设计中规定好了,系统语言不会识别NC子程序名称,并分别限制其传递参数的数量。
4)通过以上分析,为什么每个子程序增加参数都会出错? 应该是使用PROC 定义子程序参数的操作有不完善的地方。
A:参数增加的形参名称不能与调用它的实参名称一样。
B:定义与调用的数据类型及数量要一致。
C:检查是否调用了正确的程序 / 函数。根据程序 / 函数设计参数数目。
参考:《840D 高级编程手册》
提问者对于答案的评价:
谢谢各位的耐心帮助!后来我自己找到了问题原因:在改变了PROC传递参数数量重新编写了PROC语句后,必须把系统断电重启才能使新定义的变量有效。这是我以前未遇到过的情况,一般编程都是修改了以后立即起作用的。
再次感谢大家的帮助!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc154947.html