我正试图用开关来保护我的数控系统的门,这些开关会向我的笔记本电脑发送信号(我的电脑上有4马赫)。我创建了这个代码,如果门没有锁的话,应该让主轴保持不变,但是我总是收到一个错误,上面说:
[string""]1576 attempt to call global 'SicherheitsKreis' (a Nil value) stack traceback:我试着移动代码并阅读有关这方面的主题,但是没有任何效果。有人有解决办法吗?这是我所有的密码:
function SicherheitsKreis(Schliesserstate, Oeffnerstate)
if (Schliesserstate ==0 and Oeffnerstate ==1 ) then
mc.mcSpindleSetDirection(inst,0)
elseif (Schliesserstate == 1 and Oeffnerstate == 0 ) then
local sigh = mc.mcSignalGetHandle(inst, mc.OSIG_SPINDLEON);
local sigState = mc.mcSignalGet State(sigh);
if (sigState == 1) then
mc.mcSpindleSetDirection(inst,0)
else
mc.mcSpindleSetDirection(inst,1);
end
else
mc.mcSpindleSetDirection(inst,0)
end
end
if (mc.mcInEditor() == 1) then
SicherheitsKreis()
end我用来调用SicherheitsKreis的代码是:
local inst = mc.mcGetInstance()
local hsigSchliesser = mc.mcSignalGetHandle(inst, mc.ISIG_INPUT8);
local hsigOeffner = mc.mcSignalGetHandle (inst, mc.ISIG_INPUT9);
local Schliesserstate = mc.mcSignalGetState(hsigSchliesser);
local Oeffnerstate = mc.mcSignalGetState(hsigSchliesser);
SicherheitsKreis(Schliesserstate, Oeffnerstate)这个脚本是在Mach 4中键入的,函数被保存为m函数(nach4有免费的m函数,用户可以自定义)在Mach 4的内存中(对于我的计算机,它是m146)。
发布于 2020-03-11 13:08:16
你的代码:
function SicherheitsKreis(Schliesserstate, Oeffnerstate)
...
end第一种可能是代码在其他函数或其他元素中,所以它不是全局的。第二种可能是在加载这部分代码之前运行SicherheitsKreis(Schliesserstate, Oeffnerstate)。第三(非常不常见)是您用SicherheitsKreis = nil或等效的方式覆盖它。没有其他可能性了。
https://stackoverflow.com/questions/60564650
复制相似问题