万象天引
刘老师,你好。使用的GALIL运动控制卡控制伺服电机以位置模式运动,用光栅尺的反馈信号做闭环控制。现在用VC++开发上位机的控制面板,想要达到的目的是点击这个轴对应的按钮,电机按照给定的位移值运动,并且上位机能够实时的检测到光栅尺的反馈信号,并在对应的编辑框中实时更新。
这段程序框架可不可以在一个线程里面就实现,如果可以,程序的大概流程是怎么样,现在想不通,请大神们指导指导!!!!
刘岩利
这段程序框架可不可以在一个线程里面就实现,
原则上可以,做循环,每次循环从控制卡读光栅位置(或者还有其它状态信息),刷新屏幕显示,读用户操作(读按钮以及其它状态),将转换的相应命令发送到控制卡。
我叫小青蛙
添加galil库文件,然后做个定时器实时查询就可以了。
您好,我想问一下,为什么我上位机用定时器查询TP,当前位置不能实时变化呢?我选择的是500ms,是不是太慢了?问了买东西这家的技术人员,跟我说是不用设定时器,实时显示每一个脉冲即可。但是不设定时器,怎么能实时显示每一个脉冲呢?
此外还有个问题,建议每一个BG命令后加AM和MC,可是我加后,程序就会报错。谢谢!
回复内容:
对: 我叫小青蛙 添加galil库文件,然后做个定时器实时查询就可以了。 内容的回复!
刘老师,我现在也是需要上位机能够实时的检测到光栅尺的反馈信号,在galiltools里面能实时变化,但是我的里面设置的是5ms或500ms的定时器采集TP值,现在我的都是每次运动到最后一个位置才会显示位置,而在中间过程不变化,这是怎么回事呢?比如从0运动到2mm,中间的数值什么也不显示,只到最后才显示2mm。
对: 刘岩利 这段程序框架可不可以在一个线程里面就实现,原则上可以,... 内容的回复!
么我上位机用定时器查询TP,当前位置不能实时变化呢?
您是怎么查询的?如何发下的不实时变化?
我选择的是500ms,是不是太慢了?
这个取决于您自己的判断,不过,一般来说,建议在100ms以下。
此外还有个问题,建议每一个BG命令后加AM和MC
是指在控制卡上的程序里,在C程序里发送AM、MC这类等待指令,很可能导致通讯超时错误。
现在我的都是每次运动到最后一个位置才会显示位置,而在中间过程不变化,这是怎么回事呢?
这要看您的程序是怎么写的,开始运动的命令是如何发送的。另外问一句,是一谁建议您每一个BG命令后加AM和MC的?
用上位机程序编程的话,肯定要设定时器的,不然怎么能实时查询galil控制器中的数据呢,我已经实现过多个实例,肯定没有问题的。
对: 您好,我想问一下,为什么我上位机用定时器查询TP,当前... 内容的回复!