|

12精币
强制结束线程 (主控任务线程句柄 )强制结束线程 (手动任务线程句柄 )强制结束线程 (自动任务1线程句柄 )强制结束线程 (自动任务2线程句柄 )强制结束线程 (数据刷新线程句柄 )配置. 存_标签 (主窗口.标签_文件名_工位1, 主窗口.标签_文件名_工位2 )配置. 存_整数型数组 (“参数1”, 控制.脉冲模式, 控制.脉冲信号电平, 控制.方向信号电平, 控制.轴回原点方向, 控制.轴原点开关选择, 控制.硬件正限位, 控制.硬件负限位, 控制.伺服报警输入, 控制.伺服到位输入 )配置. 存_双精度小数型数组 (“参数2”, 控制.加速度极限, 控制.速度极限, 控制.加减速速度, 控制.起始速度, 控制.停止速度, 控制.轴回原高速, 控制.轴回原低速, 控制.轴原点位置, 控制.软件正限位, 控制.软件负限位 )研为. 连接控制器 ()研为. 默认参数 ()研为. 变量同步 (控制器 )控制.总轴数 = 控制器.控制器信息.总轴数 故障信息初始化 ()工艺程序初始化 ()配置. 配置文件路径 (取运行目录 () + “\data\系统配置.hcc”)配置. 读_标签 (主窗口.标签_文件名_工位1, 主窗口.标签_文件名_工位2 )配置. 读_整数型数组 (“参数1”, 控制.脉冲模式, 控制.脉冲信号电平, 控制.方向信号电平, 控制.轴回原点方向, 控制.轴原点开关选择, 控制.硬件正限位, 控制.硬件负限位, 控制.伺服报警输入, 控制.伺服到位输入 )配置. 读_双精度小数型数组 (“参数2”, 控制.加速度极限, 控制.速度极限, 控制.加减速速度, 控制.起始速度, 控制.停止速度, 控制.轴回原高速, 控制.轴回原低速, 控制.轴原点位置, 控制.软件正限位, 控制.软件负限位 )轴参数初始化 ()启动线程 (&主控任务, , 主控任务线程句柄 )启动线程 (&手动任务, , 手动任务线程句柄 )变量名 | 类 型 | 静态 | 数组 | 备 注 | 循环 | 整数型 | | | 返回值 | 整数型 | | |
循环 = 1 启动线程 (&数据刷新, , 数据刷新线程句柄 ) 判断循环首 (循环 = 1 ) 如果 (控制.紧急停止 = 1 )  如果真 (强制结束线程 (手动任务线程句柄 ))    手动任务线程句柄 = -1   如果真 (强制结束线程 (自动任务1线程句柄 ))    自动任务1线程句柄 = -1   如果真 (强制结束线程 (自动任务2线程句柄 ))    自动任务2线程句柄 = -1  研为.清空所有指令 ()  研为. 默认参数 () 延时 (200 )  控制.紧急停止 = 0     如果真 (手动任务线程句柄 = -1 ) 启动线程 (&手动任务, , 手动任务线程句柄 ) 延时 (200 )   如果真 (控制.轴参数保存 = 1 )  控制.轴参数保存 = 0  轴参数初始化 ()  判断循环尾 ()
一个按钮按下,变量赋值 控制.紧急停止=1 ,在主控死循环任务里,只要检测到 控制.紧急停止=1 就要强制结束其他3个线程,同时把 控制.紧急停止=0 ,随后开启手动任务线程,
现在的清空是,按下按钮就闪退,提示 被调试易程序运行完毕 。如果是在调试模式一步一步执行,就不会闪退,但是,执行了 启动线程 (&手动任务, , 手动任务线程句柄) 这条程序,线程句柄也有数值,但实际上手动任务没有启动
|
最佳答案
查看完整内容
手动任务里应该某些操作不适合强停,应改成判断 手动任务线程句柄 = -1 主动跳出循环 同时把 手动任务线程句柄 = 0
如果真 (手动任务线程句柄 = 0)
启动线程 (&手动任务, , 手动任务线程句柄)
|