Galil控制卡能Wince控制吗? 点击:622 | 回复:7



燕赵飞歌

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:5帖 | 15回
  • 年度积分:3
  • 历史总积分:74
  • 注册:2013年4月08日
发表于:2016-01-11 13:15:10
楼主

刘工您好:    请教一个问题,我目前使用的是Galil 2143的运控控制卡,现在要把系统升级成Wince系统,可是2143的动态库只支持windows 不支持Wince系统,我看2143是通过串口连接的,那应该wince也没有问题才对,只要知道串口发送的协议就可以了。    您那有什么办法或资源吗?不胜感谢啊!




刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:17帖 | 8240回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2016-01-12 09:57:21
1楼

对于galil的dmc-2143来说,无论您是什么系统都可以的。只要您的系统本身有相应的开发工具,而这个开发工具提供串口通信或者以太网通讯功能,无论是函数、是对象还是控件,都无所谓的。



如果您喜欢串口,或者说对串口比较熟悉,只要按照galil的串口协议以ascii字符的形式发送指令文本就可以了。

galil的串口为9针插座,硬件定义为:

1 CTS    6 CTS

2 TXD    7 RTS

3 RXD    8 CTS

4 RTS    9 NC

5 GND

如果与电脑相连,可以买两头是9孔插头的9芯直通线。连接时,选择 1起始位 8数据位 1停止位 无校验位 全双工,硬握手。

如果您使用的不是电脑,串口有可能不支持硬握手,这样,就需要将GALIL串口中的CTS与RTS短接,比如1、4两脚短接,“伪造”硬握手信号。否则GALIL不会从串口输出信息。

DMC-2143默认是19200的通讯速度,也可以通过跳线选择降低通讯速度。



从串口可以发送任何你原本用COMMAND 发送的指令,只是在末尾要加上回车(0DH)。您可以先找个串口调试工具熟悉一下再开始编成,不过有的串口调试工具在选择了字符模式以后,就不支持发送回车这类不可显示的字符了,这个要注意。GALIL在没有收到回车时,是不会理睬前面收到的字符的。


在默认情况下,GALIL会将所有受到的字符回传,您可以利用这个功能检查是否存在传输错误,如果不需要这个功能,可以用EO指令关闭。


对于错误的指令,GALIL会回复一个问号(3FH)。对于正确的指令,GALIL会执行(如果指令需要反馈信息的话,比如查询指令,会先返回反馈信息),而后回复一个冒号(3AH)


在一些情况下,GALIL会主动输出一些信息,比如在程序中使用了MG指令,比如一些出错信息,这些信息可以配置为最高位1,和一般的回应信息向区别。


虽然GALIL的串口本身支持全双工的模式,可以同时发送/接收数据,但是用户最好还是等接收到前一个指令的反馈后再发送下一个指令,免得弄错了反馈与指令的对应关系。



如果可以的话,个人建议使用网口,毕竟速度快得多,而且TCP/IP协议本身包含了很完美的检验机制。只要把指令(加上最后的回车)作为一个数据包发送给GALIL就好了,GALIL会回应包含了问号或者冒号(可能有反馈数据)的数据包。


燕赵飞歌

  • 精华:0帖
  • 求助:2帖
  • 帖子:5帖 | 15回
  • 年度积分:3
  • 历史总积分:74
  • 注册:2013年4月08日
发表于:2016-01-12 11:06:59
2楼


回复内容:

对: 刘岩利 对于galil的dmc-2143来说,无论您是什么系统... 内容的回复!

    非常感谢刘工的恢复,能用就行!您的意思是:只要串口连接好了,我在Wince下通过串口发送:JGX=100 \r BGX\r 这样就可以了?

    我之前在WindowXp下用的串口都是3线的,能行吗?只有2、3、5三根线

燕赵飞歌

  • 精华:0帖
  • 求助:2帖
  • 帖子:5帖 | 15回
  • 年度积分:3
  • 历史总积分:74
  • 注册:2013年4月08日
发表于:2016-01-12 11:12:29
3楼


回复内容:

对: 燕赵飞歌 回复内容:对: 刘岩利  对于galil的dmc-21... 内容的回复!

说错了 !串口线都有的 呵呵 

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:17帖 | 8240回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2016-01-12 14:45:26
4楼

非常感谢刘工的恢复,能用就行!您的意思是:只要串口连接好了,我在Wince下通过串口发送:JGX=100 \r BGX\r 这样就可以了?


也可以发送JGX=100;BGX\r,反正都是收到两个冒号的反馈。


我之前在WindowXp下用的串口都是3线的,能行吗?只有2、3、5三根线

这样的线确实不行。dmc-21X3控制器的串口要求硬握手信号,即使上位控制器没有,也要在galil这边自己接上。

一般来说,用户第一次买卡,我们会送一根两头母接头的9芯直通串口线和一根交叉的网线(以后买卡的时候就变成串口线或网线)。

燕赵飞歌

  • 精华:0帖
  • 求助:2帖
  • 帖子:5帖 | 15回
  • 年度积分:3
  • 历史总积分:74
  • 注册:2013年4月08日
发表于:2016-01-14 11:02:45
5楼

刘工:

    还得请教一个问题,我用串口助手测试了一下 发送"SHZ;" "JGZ=1000;" "MO;"这些命令都可以执行。

    指令都没有返回值,比如我发送MG"--------";  "KPZ=?;" 这些有返回值的都没有响应,您知道哪里的问题吗?

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:17帖 | 8240回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2016-01-14 13:49:01
6楼

可能的原因,您的"串口助手"不支持硬握手的通讯方式,导致galil的串口无法输出。仔细看看软件的 界面,有无相关的设置。如果找不到,就只能自己做根线,在控制器那边短接cts和rts信号了。


燕赵飞歌

  • 精华:0帖
  • 求助:2帖
  • 帖子:5帖 | 15回
  • 年度积分:3
  • 历史总积分:74
  • 注册:2013年4月08日
发表于:2016-01-14 14:56:57
7楼

都Ok了!谢谢刘工的帮忙!


热门招聘
相关主题

官方公众号

智造工程师