10.29-基于LabVIEW的分布式集群机器人控制系统

根据10.27的规划进行工作

  • 更改项目并修改文件名字
    • 注意:除了虚拟文件夹名字可以直接更改外,其余文件的名字均要在项目管理器中更改。方法:右击-重命名
    • 名字约定示例

 

计算机生成了可选文字: zsControlCenter.lvproj -  WE(O) Iä(T)  Il  FromOtherProject  TEST  Splash Screen.vi  zsControlCenter.lvlib  z sControlCenterÉ-•EiÅB  zsControlCenter.lvclass  E JoyStick Actor.lvlib  JoyStick Control Message.lvclass  JoyStick ControlMessage.ctl  Send JoyStick Control Message.vi  Write Data.vi  JoyStick.lvclass  JoyStick.ctl  Localization. vi  Actor Core. vi  Stop Core.vi  TaskForControlMessage.vi  MapDisplayer.lvlib  Map DisplayerÉ-.EiÅB  MapDisplayer Data Message.lvclass  MapDisplayer DataMessage.ctl  Send MapDisplayer Data Message.vi  MapDisplayer.lvclass  MapDisplayer.ctl  Localization.vi  Actor Core. vi  Stop Core.vi  TaskForDataMessage.vi  TEMP.vi

 

 

 

2015/10/29 10:30 - 屏幕剪辑

  • 深刻理解操作者核心函数
    • 两个线程,一个线程引出队列,可以引出自己的队列或者调用者的队列,然后对队列进行数据读写
    • 另一个线程调用父类的核心函数:子操作者的核心函数重写父类的核心函数,然后调用父方法核心函数实现重写
  • 创建函数
    • 按照面向对象方法的要求,创建类的成员函数
  • 关于控件引用的创建
    • 不能创建 IMAQ image display.ctl 的引用的输入控件
    • 只能创建 IMAQ image.ctl 的引用的输入控件
    • 结论:所以只能在DO函数中更新 IMAQ image.ctl 控件的引用,然后再核心函数中用循环更新 IMAQ image display.ctl
  • 基于上一条叙述,决定不将计算资源传到DO函数中,因为不管怎样都要在核心函数中循环,DO函数还是主要传数据比较好。
  • 关于错误排查
    • 如果出现错误,不要看LV自己的错误提示,一定要在自己的思路中查看是否有VI还没有被修改。
  • 自认为修改完之后,按照程序执行逻辑自行思考一遍,再进行调试
  • 如果停止执行之后发现还有子操作者没有正常停止运行,请手动按VI的红色按钮退出
    • 或者,使用类似于B操作者的“停止信号”通知器
  • 使用通知器进行修改后发现子操作者图片无法更新
    • 原因是,在循环中一旦放入了事件结构,如果该事件永不超时,则循环不会继续,程序永远在事件结构里面执行
    • 由于程序执行一直停留在事件结构,所以循环不会继续,即计数器I不会增加,所以跟事件结构并行运行的发送消息函数不会运行,故不会发送消息。
    • 要解决这个问题,只要将事件结构的超时时间设为0即可马上让循环继续。

猜你喜欢

转载自www.cnblogs.com/lizhensheng/p/11241957.html