[etherlab-users] Installing DLS in MacOSX

Jeen jhur at eotechnics.com
Tue Oct 1 11:31:41 CEST 2019


https://forum.linuxcnc.org/27-driver-boards/35591-beckhoff-ethercat-64-with-bit-linuxcnc-how-to-install
ec_debianize는 데비안 64 비트 시스템 용 preempt-rt 커널에 대한 etherlab-master를 구성하는 도구로, 단서는 .ko  대신 .so 사용을 구성하는 도구임
linuxcnc 외부에서 실행되는 etherlab 마스터와 대화하려면 linuxcnc에 접착구성(linuxcnc-ethercat) 요소가 있어야 함
when I 'make', print "halcompile/comp ececutable not found or set"
==> It looks like linuxcnc is not installed as run in place, install linuxcnc-dev version with all dependencies.
ec-debianize (latest commit, b127d07 ) and Linuxcnc (2.7.13) both compiled sucsesfully and work well on this kernel (4.9.98-rt76)

"ecrt_slave_config_pdos를 호출 할 때, 디폴트 PDO 할당에 이미 사용된 PDO들 또는 사용하려는 슬레이브의 PDO를 ehterlab에 알려 줍니다.

필자의 경우, ecrt_slave_config_pdos를 호출하여 Etherlab에게 기본 할당을 사용하는 PDO에 대해 알리고 사용을 기대합니다.
하나의 장치 만 사용하면 완벽하게 작동하는 테스트 프로그램이 있습니다.
PDO는 재 맵핑되지 않으므로 ecrt_domain_reg_pdo_entry_list ()가 호출 될 때 항목을 찾고 문제 없었습니다.
여기서 호출 순서는 다음과 같았습니다:
  * ecrt_request_master()
  * ecrt_master_create_domain()
  * ecrt_ecrt_master_slave_config()
  * ecrt_slave_config_pdos()
  * ecrt_domain_reg_pdo_entry_list()
정확히 같은 호출을 하는 두 번째 프로그램에서는 PDO가 다시 매핑되고 있으므로
코드가 remap하지 않도록 하거나 remap 하는 똑같은 호출하게 하는 "스위치"를 이해하려고 합니다.
이 경우 ecrt_domain_reg_pdo_entry_list () 호출은 이전 게시물의 아래 출력에 표시된 대로 예상되는 항목을 찾지 못해 실패합니다.

두 번째 프로그램은 ecrt_request_master ()를 호출하기 전에 네트워크에서 장치의 자동 검색을 수행하고이 정보를 사용하여 정확히 동일한 구조 'ethercat cstruct'출력을 다시 작성합니다.
그런 다음 동일한 호출 스택에 공급됩니다.이 작업을 수행하려면 ethercat 도구와 동일한 기능을 사용합니다.
다른 프로그램 (정상 작동)은 동기화, pdos, 항목 및 기본적으로 'ethercat cstruct'가 포함된 출력을 합니다. 는 하드 코딩 된 도메인을 갖습니다..

From: etherlab-users [mailto:etherlab-users-bounces at etherlab.org] On Behalf Of Daniel Lemus
Sent: Monday, September 30, 2019 10:44 PM
To: etherlab-users at etherlab.org
Subject: Re: [etherlab-users] Installing DLS in MacOSX

Hi

I was able to install it, with limited functionality (I only wanted to use the dis export command on mac). Here in how I installed it

Required Packages
wget fltk fftw uriparser protobuf libxml2 zlib. Be aware where the libraries for libxml2and zlibare installed (in my case /usr/local/opt/)

  1.  Download and install PdCom library

2.  $ wget http://etherlab.org/download/pdcom/pdcom-3.0.9.tar.bz2

3.  $ tar xjf pdcom-3.0.9.tar.bz2

4.  $ cd pdcom-3.0.9

5.  $ ./configure --prefix=/usr/local/etherlab

6.  $ make

$ sudo make install

  1.  Clone and install DLS

8.  $ cd /usr/local/etherlab/src/

9.  $ hg clone http://hg.code.sf.net/p/dls/code dls

10.$ cd dls

$ hg update --rev 872 #Revision tested

  1.  Compile and install DLS source code

     *   Modify the file /usr/local/etherlab/src/dls/lib/Zlib.cpp. Replace line 22 from #include <zlib.h>to #include "[path-to-zlib-libraries]/zlib/include/zlib.h"
     *   Modify the file /usr/local/etherlab/src/dls/daemon/ProcMother.cppline 925. Replace ret = bind(_listen_fd, rp->ai_addr, rp->ai_addrlen);by ret = ::bind(_listen_fd, rp->ai_addr, rp->ai_addrlen);
     *   In /usr/local/etherlab/src/dls/daemon/Connection.cppreplace *str = strerror_r(errno, ebuf, sizeof(ebuf))by *str = (char *)strerror_r(errno, ebuf, sizeof(ebuf))in line 158. In function Connection::thread_finished()in line 93 comment out the content of the function and add a return 1;
     *   Add #include <signal.h>to /usr/local/etherlab/src/dls/fltkguis/CtlDialogMain.cpp
     *   Replace line 291 in /usr/local/etherlab/src/dls/tool/Export.cppfrom ret = mkdir(dls_export_dir.c_str());to ret = mkdir(dls_export_dir.c_str(), 0755);

12.$ ./bootstrap.sh

13.$ ./configure --prefix=/usr/local/etherlab --with-xml-prefix=[path-to-libxml-libraries]/libxml2 --with-zlib-dir=[path-to-zlib-libraries]/zlib CXXFLAGS=-std=c++11

14.$ make

$ sudo make install
If the error configure.ac:47: warning: macro 'AM_PATH_XML2' not found in libraryafter running ./bootstrap.shadd the symbolic link

$ ln -s /usr/local/Cellar/libxml2/<version>/share/aclocal/libxml.m4 /usr/local/share/aclocal/
where <version>is the correspondent libxml version installed in your system (In my case 2.9.9_2) and repeat commands below.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20191001/37bbf3dc/attachment-0002.htm>


More information about the Etherlab-users mailing list