galil在arm平台通信开发 点击:980 | 回复:18



martin415

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2017年3月06日
发表于:2017-03-06 11:00:04
楼主

刘工:你好

公司galil型号 DMC-30011 BOX ,有一个arm平台的linux开发板想与galis通信。

通过浏览官方网站,并没有提供开发的库文件,也没有提供源码(arm平台 linux系统)。


请问刘工,有什么办法呢?



楼主最近还看过



刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:19帖 | 8241回
  • 年度积分:401
  • 历史总积分:28764
  • 注册:2005年3月09日
发表于:2017-03-06 12:45:57
1楼

galil本身的通讯协议完全开放,无论您在任何平台上开发(包括windows平台),其实都不需要什么库文件。只要您的开发工具支持ethernet或者rs232串口的文本通讯就够了。

把指令手册上的指令以ascii文本的形式(最后加上回车)直接发送给控制卡,控制卡就会执行相应的操作,同样以ascii文本的形式反馈相应信息。

martin415

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2017年3月06日
发表于:2017-03-07 17:16:05
2楼


回复内容:

对: 刘岩利 galil本身的通讯协议完全开放,无论您在任何平台上开... 内容的回复!

刘工:

你好,我这边环境是这样的galil连接马达,马达带动病床水平和垂直移动。目前

按照你说的指令以ascii文本的形式(最后加上回车)通过网络tcp/IP(ip:192.168.1.111端口23)发给galil 已经可以使床水平动了。


上位机发送的:COMMAND="HOME"(回车换行)

galil响应:  :                     //一个分号,没有返回更多的信息

见截图

但是用galilTool工具可以返回更多的信息,见截图


我急切需要根据这些具体的信息来判断本次请求是否操作成功(上图红色箭头所指的内容),请问刘工,这些信息通过什么途径可以获取(arm平台无法调用库文件的),还是这些信息是通过其他网络端口获取呢?感谢



martin415

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2017年3月06日
发表于:2017-03-07 17:21:14
3楼


补充一张清楚的galilTool测试的图片

martin415

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2017年3月06日
发表于:2017-03-07 17:26:24
4楼

HOME INIIATED

HOME UNDERWAY

HOME COMPLETED

这些信息是电器工程师写的galil固件程序中

MG CMDNOW{S}," INITIATED"

MG "HOME UNDERWAY"

MG CMDNOW{S}," COMPLETED"

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:19帖 | 8241回
  • 年度积分:401
  • 历史总积分:28764
  • 注册:2005年3月09日
发表于:2017-03-08 11:32:33
5楼

看不清楚你程序的完整内容,所以不能准确的分析,只能大致的猜测原因,可能是通讯HANDLE的问题。

对于以太网通讯来说,硬件上的一根网线,软件上可以对应很多不同的HANDLE,控制器支持6个HANDLE,内部用字母A-F来标示。同时,串口也被分配了一个标示字母 S。

控制器街道外部的指令时,从那个HANDLE接收的指令,就自动从哪个HANDLE反馈。

在控制器上的程序中,用MG指令输出信息,需要指定通过哪个HANDLE发出,如果在MG指令中没有明确指定,则使用CF指令指定的HANDLE。如果您的软件不是用这个HANDLE和控制器建立的连接,那么就收不到通过这个HANDLE发出的信息。

一般来说,每个软件通过网口和控制器建立连接,会占用一个空闲的HANDLE,依次使用A、B、C、D、E、F。galiltools软件会占用两个handle。

从您的图片上可以以看出,galiltools使用的是D、E两个HANDLE。这说明,在GALILTOOLS连接到控制器时,A、B、C都应该被其它软件占用了,没有放开。  

TH指令可以查询当前控制器上目前6个HANDLE的连接情况,向控制器发送WH指令,可以查询当前使用的HANDLE的编号。

在控制器上程序中增加一段用来设置CF的小程序。外部控制器可DMC建立网络连接后,在开始正式工作前,先用WH查询当前使用的HANDLE编号,把这个信息发给控制器,让控制器设置好输出信息所用的HANDLE。确保外部控制器能收到信息。

 

 

martin415

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2017年3月06日
发表于:2017-03-08 17:50:16
6楼


回复内容:

对: 刘岩利 看不清楚你程序的完整内容,所以不能准确的分析,只能大致... 内容的回复!

经过测试发现MG CMDNOW{S}," INITIATED“MG CMDNOW{S}," INITIATED"MG CMDNOW{S}," COMPLETED"这些信息是通过UDP协议发送出来的(我是通过TH指令才知道的)。电脑做UDP 服务端,galil做UDP客户端。这里有一个问题如何把电脑的ip,端口告诉galil,以及galil怎么连接到UDP服务端的问题(指令依次该怎么发送)。按照您的解释,我用galilTool测试,并监控网络TCP/IP,日志如下:(为了方便看日志,修改-> 表示电脑发送内容),通过这个日志您可能发现该发什么指令,使galil怎么连接上UDP服务端。

  

十六进制                                            ascii码


->  0D                                                 .

00000000  3A                                                 :

->  4D 47 5F 54 4D 0D                                  MG_TM.

00000000  20 31 30 30 30 2E 30 30  30 30 0D 0A 3A             1000.00 00..:

->  0D                                                 .

00000000  3A                                                 :

->  43 57 31 0D                                        CW1.

00000000  3A                                                 :

->  12 16 0D                                           ...

00000000  44 4D 43 33 30 30 31 30  20 52 65 76 20 31 2E 32   DMC30010  Rev 1.2
00000010  67 0D 0A 3A                                        g..:

->  51 5A 0D                                           QZ.

00000000  20 31 2C 20 31 38 2C 20  31 36 2C 20 33 36 0D 0A    1, 18,  16, 36..
00000010  3A                                                 :

->  4D 47 5F 41 51 31 7B 5A  31 30 7D 0D               MG_AQ1{Z 10}.

00000000  20 30 0D 0A 3A                                      0..:

->  4D 47 5F 42 4E 7B 5A 31  30 7D 0D                  MG_BN{Z1 0}.

00000000  20 38 30 32 30 0D 0A 3A                             8020..:

->  57 48 0D                                           WH.

00000000  49 48 42 0D 0A 3A                                  IHB..:

->  4D 47 5F 49 48 41 31 0D                            MG_IHA1.

00000000  20 31 32 38 34 37 2E 30  30 30 30 0D 0A 3A          12847.0 000..:

->  4D 47 5F 49 48 42 31 0D                            MG_IHB1.

00000000  20 31 33 30 32 36 2E 30  30 30 30 0D 0A 3A          13026.0 000..:(TCP/IP服务端端口

->  4D 47 5F 49 48 43 31 0D                            MG_IHC1.

00000000  20 36 31 31 31 36 2E 30  30 30 30 0D 0A 3A          61116.0 000..:(UDP服务端端口

->  43 57 31 0D                                        CW1.

00000000  3A                                                 :

00000000  45 49 2C 2C 32 0D                                  EI,,2.

00000000  3A                                                 :

00000000  43 46 43 0D                                        CFC.

00000000  3A                                                 :

00000000  44 52 2C 32 0D                                     DR,2.

00000000  3A                                                 :

00000000  51 52 0D                                           QR.

00000000  97 01 4A 00 26 B7 F7 00  00 00 01 05 00 00 00 00   ..J.&... ........
00000010  00 00 00 00 00 00 00 00  00 00 FF 01 00 00 00 40   ........ .......@
00000020  00 00 00 00 1F 00 38 00  6C 04 23 68 0B 00 23 68   ......8. l.#h..#h
00000030  0B 00 00 00 00 00 BD 04  01 00 00 00 00 00 3A FA   ........ ......:.
00000040  FF FF 00 00 05 00 00 00  00 00 3A                  ........ ..:

00000000  5E 52 5E 56 0D                                     ^R^V.

00000000  3F                                                 ?

00000000  54 43 31 0D                                        TC1.

00000000  36 20 4E 75 6D 62 65 72  20 6F 75 74 20 6F 66 20   6 Number  out of  
00000010  72 61 6E 67 65 0D 0A 3A                            range..:

00000000  51 52 0D                                           QR.

00000000  97 01 4A 00 DC B7 F7 00  00 00 00 05 00 00 00 00   ..J..... ........
00000010  00 00 00 00 00 00 00 00  00 00 FF 01 00 00 00 40   ........ .......@
00000020  00 00 00 00 1F 00 38 00  6C 04 23 68 0B 00 23 68   ......8. l.#h..#h
00000030  0B 00 00 00 00 00 BD 04  01 00 00 00 00 00 3A FA   ........ ......:.
00000040  FF FF 00 00 05 00 00 00  00 00 3A                  ........ ..:

00000000  12 16 0D                                           ...

00000000  44 4D 43 33 30 30 31 30  20 52 65 76 20 31 2E 32   DMC30010  Rev 1.2
00000010  67 0D 0A 3A                                        g..:

00000000  12 16 0D                                           ...

00000000  44 4D 43 33 30 30 31 30  20 52 65 76 20 31 2E 32   DMC30010  Rev 1.2
00000010  67 0D 0A 3A                                        g..:

00000000  0D                                                 .

00000000  3A                                                 :



输入TH指令,发现IHC UDP PORT 60007 TO IP ADDRESS  192,168,1,120 P ORT 61116

//UDP 服务端192.168.1.120:61116端口,galil已经连接上UDP服务端


00000000  54 48 0D                                           TH.

00000000  43 4F 4E 54 52 4F 4C 4C  45 52 20 49 50 20 41 44   CONTROLL ER IP AD
00000010  44 52 45 53 53 20 31 39  32 2C 31 36 38 2C 31 2C   DRESS 19 2,168,1,
00000020  31 31 31 20 45 54 48 45  52 4E 45 54 20 41 44 44   111 ETHE RNET ADD
00000030  52 45 53 53 20 30 30 2D  35 30 2D 34 43 2D 34 30   RESS 00- 50-4C-40
00000040  2D 31 46 2D 35 34 0D 0A  49 48 41 20 54 43 50 20   -1F-54.. IHA TCP  
00000050  50 4F 52 54 20 32 33 20  54 4F 20 49 50 20 41 44   PORT 23  TO IP AD
00000060  44 52 45 53 53 20 31 39  32 2C 31 36 38 2C 31 2C   DRESS 19 2,168,1,
00000070  31 32 30 20 50 4F 52 54  20 31 32 38 34 37 0D 0A   120 PORT  12847..
00000080  49 48 42 20 54 43 50 20  50 4F 52 54 20 32 33 20   IHB TCP  PORT 23  
00000090  54 4F 20 49 50 20 41 44  44 52 45 53 53 20 31 39   TO IP AD DRESS 19
000000A0  32 2C 31 36 38 2C 31 2C  31 32 30 20 50 4F 52 54   2,168,1, 120 PORT
000000B0  20 31 33 30 32 36 0D 0A  49 48 43 20 55 44 50 20    13026.. IHC UDP  
000000C0  50 4F 52 54 20 36 30 30  30 37 20 54 4F 20 49 50   PORT 600 07 TO IP
000000D0  20 41 44 44 52 45 53 53  20 31 39 32 2C 31 36 38    ADDRESS  192,168
000000E0  2C 31 2C 31 32 30 20 50  4F 52 54 20 36 31 31 31   ,1,120 P ORT 6111
000000F0  36 0D 0A 49 48 44 20 41  56 41 49 4C 41 42 4C 45   6..IHD A VAILABLE
00000100  20 0D 0A 49 48 45 20 41  56 41 49 4C 41 42 4C 45    ..IHE A VAILABLE
00000110  20 0D 0A 49 48 46 20 41  56 41 49 4C 41 42 4C 45    ..IHF A VAILABLE
00000120  20 0D 0A 3A                                         ..:

00000000  4D 47 5F 49 48 43 31 0D                            MG_IHC1.

00000000  20 36 31 31 31 36 2E 30  30 30 30 0D 0A 3A          61116.0 000..:

00000000  45 49 2C 2C 2D 31 0D                               EI,,-1.

00000000  3A                                                 :

00000000  44 52 30 0D                                        DR0.

00000000  3A                                                 :


martin415

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2017年3月06日
发表于:2017-03-08 17:58:44
7楼

补充图片:

我自己的工具测试结果:TH 找不到galil连接上UDP服务端的信息



galilTool测试工具:galil可以看到UDP连接上了

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:19帖 | 8241回
  • 年度积分:401
  • 历史总积分:28764
  • 注册:2005年3月09日
发表于:2017-03-09 14:50:27
8楼

 

回复内容:

对: martin415 补充图片:我自己的工具测试结果:TH 找不到galil... 内容的回复!

 

您用自己的以太网通讯程序察看的时候,那个udp还没有建立,不存在的东西当然找不到。之后您用galiltools软件查看的时候,看到的三个handle,第一个就是连接到您自己的通讯程序上的,后两个都是连接到galiltools上的,是由galiltools软件建立的。如果您现在不关闭galiltools软件,切换回您自己的软件,再输入TH指令,也可以看到三个HANDLE

 

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:19帖 | 8241回
  • 年度积分:401
  • 历史总积分:28764
  • 注册:2005年3月09日
发表于:2017-03-09 15:03:39
9楼

回复内容:

对: martin415 回复内容:这些信息是通过UDP协议发送出来的(我是通过TH指令才知道的)。电脑做UDP 服务端,galil做UDP客户端。这里有一个问题如何把电脑的ip,端口告诉galil,以及galil怎么连接到UDP服务端的问题(指令依次该怎么发送)。

 

您不需要监视网络通讯日志的。只要在dmc-30011上的程序中增加几行依据外部输入的指令来设置CF就可以了。至于这个HANDLE是TCP还是UDP,其实无所谓的。

您的通讯软件在和dmc-30011建立了连接后,自然就建立了一个HANDLE,只要在通讯软件上用WH查出这个HANDLE在dmc-30011上的编号,然后用CF指令来指定所有程序中的MG指令从这个HANDLE输出就可以了。

martin415

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2017年3月06日
发表于:2017-03-09 15:56:59
10楼

回复内容:

对: 刘岩利 回复内容:对: martin415 回复内容:这些信息... 内容的回复!


谢谢刘工,我明白你的意思了。但是dmc-30011上的程序我不知道怎么写,是其他人负责写的。能否写下?目前测试可能是按默认配置来的,通过另外一种方式已经测试通过。之前写的信息有点错误,更正下。galil是udp服务端,电脑是udp客户端。在udp连接上udp服务端后,发送0x0A给galil后,MG 发送的信息就可以在udp客户端上打印出来了。




刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:19帖 | 8241回
  • 年度积分:401
  • 历史总积分:28764
  • 注册:2005年3月09日
发表于:2017-03-09 17:01:10
11楼

谢谢刘工,我明白你的意思了。但是dmc-30011上的程序我不知道怎么写,是其他人负责写的。能否写下?

 

这个是肯定要在您现有的程序上修改的,而且需要您的那块 arm 板上的程序和 DMC-30011 上的程序配合。所以,我只能给您提供一个逻辑流程,无法给您提供具体的例程。

 

这个流程就是上面说的过的:

在 arm 板和 dmc-30011 建立了连接后,开始所有其它工作之前:

1、从 arm 板上向 dmc-30011 发送 WH 指令,查出当前使用的这个 HANDLE 在 dmc-30011 上的编号,

2、用 CF 指令来指定所有程序中的 MG 指令从这个 HANDLE 输出就可以了

3、向 dmc-30011 中发送 XQ 指令启动上面的程序,

接下来就是您原本的流程了。

 

在 DMD-30011 的程序中需要确认三点:

1、dmc-30011 上的程序中没有使用 CF 指令

否则,程序执行到这里会改变输出 HANDLE 的设置,那前面的 CF 指令就白发了。

2、dmc-30011 上的程序中,所有的 MG 指令没有使用 {En} 这样的符号

否则,该行信息不从 CF 指定的 HANDLE 发出,而是从 {En} 指定的 HANDLE 发出,ARM 板可能还会收不到。

3、dmc-30011上的程序中没有使用#AUTO这个标号

否则,ARM板上发出的 WH 和 CF 指令可能会被用户程序截获,而起不到相应的作用。

 

如果您觉得上面的方式太复杂以至于不可实施,那么有一个简单,但不一定可靠的方法,就是向DMC-30011发送指令CFA;BN,强制要求所有信息从上电后第一个连接的HANDLE发出。这样在多数情况下是可用的。但是上面三条中的前两条也是要注意的。

martin415

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2017年3月06日
发表于:2017-03-10 10:51:16
12楼


回复内容:

对: 刘岩利 谢谢刘工,我明白你的意思了。但是dmc-30011上的... 内容的回复!


感谢刘工,已经明白了。


稍后几天将分享一份关于arm开发板怎么跟galil通信实现的文档,希望对大家都有用。

CKxxx

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 12回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2014年11月20日
发表于:2017-03-10 18:41:00
13楼

CKxxx

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 12回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2014年11月20日
发表于:2017-03-10 18:41:11
14楼

么么么么木木木木木木

martin415

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2017年3月06日
发表于:2017-03-11 08:30:58
15楼

http://pan.baidu.com/s/1qXGKsbU

大家学习用哈,规则要遵守。你们懂的。

稍后会给出代码实现。尽情期待

martin415

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2017年3月06日
发表于:2017-03-11 08:32:06
16楼


回复内容:

对: CKxxx 么么么么木木木木木木 内容的回复!


请随时关注

花花公子@123

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 75回
  • 年度积分:0
  • 历史总积分:101
  • 注册:2016年11月14日
发表于:2018-05-28 16:03:13
17楼

初学者急需资料学习,多谢

蓝静0812

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 79回
  • 年度积分:0
  • 历史总积分:102
  • 注册:2015年7月13日
发表于:2018-07-06 13:11:48
18楼

刚好想找资料,谢谢楼主!


热门招聘
相关主题

官方公众号

智造工程师