检验仪器控制怎么停止的

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

之前介绍仪器控制启动是按维护的调用M和仪器ID组串直接j启动进程进程在调用Start启动TCP。

组装执行M串用j启动进程
在这里插入图片描述

启动TCP通道成功之后就到f的死循环了
在这里插入图片描述

死循环这里容易有个误解以为Stop是停止仪器接口的。其实这个Stop是判断要不要退出死循环的返回需要退出循环就q。然后程序往下执行就执行完了。等于停止了仪器控制。
在这里插入图片描述

Stop逻辑并不是停止只是每轮循环检测仪器表是否标记要停止接口。标记不启动就返回1退出死循环让仪器接口执行到结束。
在这里插入图片描述

为什么接口异常会停止仪器控制。并不是控制了停止而是异常导致执行跳出for循环后往下执行到尾了。所有确保逻辑不跳出for循环就是不停接口。比如给Main捕获异常吃掉异常。
在这里插入图片描述

为什么仪器控制界面停止接口好使就是设置仪器标识变量。然后让接口下一轮退出死循环。停止慢的原因也是要等待接口逻辑运行到下一轮的Stop判断。如果接口本身就没执行死循环和Stop那种这种停止是没效果的他依赖程序自己跳出for循环。
在这里插入图片描述

下面这个接口正常停止时间可能就长达到10秒改停止标识前正好开始Main然后等待R的10秒超时或者仪器正在传数据等把数据处理完数据处理慢的话可能时间就更不可控了。正常停止有个好处就是不会破坏通讯完整性比如通讯执行一半被强行结束比如上传通道到一半或者接收一半数据等是在完整一轮退出的。
在这里插入图片描述

强制停止快的原因是直接杀进程了。如果仪器表存的进程号本身就不对或者不在那么强制停止也是不好使的。比如仪器启动在1号ECP上的998进程这时候仪器表存的进程号是998.如果把仪器启动Webservice地址改2号ECP这时候去停止仪器控制是有用的因为它是改仪器表运行标识等接口自己退出死循环的。但这时候强制停止是不行的因为在2号ECP998进程可能不存在。存在也不是仪器接口的。
在这里插入图片描述
总结就是在接口正常运行的情况普通停止是客户忽略不同ECP的。只要能更新仪器表标识就能。而强制停止如果执行停止逻辑ECP和启动ECP不同就停不了而且会误杀其他进程。正常停止不了的情况应该是接口在for循环的Main里面卡住了Main内部死循环**Main逻辑有死循环就不用指望能正常停止一般正常停止不了也要注意接口可能写死循环了**一直没有调用Stop的机会。这时候如果启动地址变化导致强制停止服务器不同的话就只能一个个ECP找仪器锁^MILOCK然后停止进程去了。

1.Main内部死循环会导致无法正常停止这时候可以强制停止建议能正常停止的还是正常停止确保通讯完整性。
2.如果这时候还改仪器启动配置了导致强制停下杀进程不对就找^MILOCK结束进程

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6