Problem bei installation Ethercat

More
04 Aug 2021 20:41 #216937 by db1981
anbei mal die exportierte xml aus deinem TC file, sowie die startup daten als init_cmd file und eine ethercat_conf für dein Projekt.

die init.xml muss in das gleiche Verzeichnis in dem sich auch ini/hal/ethercat_conf.xml befinden....

Bin nicht sicher ob das pdo mapping auf Anhieb funktioniert, da das unter TC3 anders dargestellt wird als unter TC2. Bei TC2 befanden sich die can nodes unterhalb der ethercat klemme und das pdo mapping war mit in den prozessdaten der el6751 dargestellt.

Bitte die entsprechenden error messages und dmesg auszüge dann posten.

Please Log in or Create an account to join the conversation.

More
04 Aug 2021 20:43 #216938 by db1981
die files wären schon sinnvoll  .....
Attachments:

Please Log in or Create an account to join the conversation.

More
04 Aug 2021 20:55 #216941 by db1981
hab das kurz in TC2 nachgeklickt, die pdo config ist falsch.
muss ein complex entry für her, ändere ich morgen.

Please Log in or Create an account to join the conversation.

More
05 Aug 2021 18:13 #217001 by Columbo
Hallo db1981,

das ethercat_conf sieht ja übersichtlich aus! Die ein oder andere Zeile kann ich halbwegs nachvollziehen. Trotzdem schade, dass ich (als halber Laie) nicht alleine mit der TC3 .xml (dessen richtigen Export ich jetzt übrigens auch gefunden hab, Danke) LCNC konfigurieren kann.

Jedenfalls sieht die el6751_init.xml für mich aus wie Buchstabensalat, da steig ich nich durch...

Please Log in or Create an account to join the conversation.

More
05 Aug 2021 19:14 #217005 by db1981
initcmd xml :

<EtherCATMailbox>              sagt dem Master jetzt kommen Mailboxdaten (z.b. SDOs)
                <CoE>                 (Can over Ethernet,  gibt auch noch SOE = Sercos)
                    <InitCmds>       (initcmds....)


Aufbau von einem Initcmd = Startup commando in Twincat = initialisierung der Klemme :

<InitCmd Fixed="true" CompleteAccess="true">                     completeAccess = beginnend ab index werden die Rohdaten byteweise   geschrieben

<Transition>PS</Transition>          Übergang wann geschrieben werden soll , PS = pre auf safeop, gibt auch nich ip = init auf preop

<Comment><![CDATA[EL67xx CoE Init Cmd 3 (8000:00)]]></Comment>   Kommentar ,  unwichtig
<Timeout>0</Timeout>            Timeout für den schreibvorgang, 0= standart der im Master implementiert ist.
<Ccs>1</Ccs>                         wird überlesen , beckhoff überbleibsel  (control system studio ....)
<Index>32768</Index>
<SubIndex>0</SubIndex>
           <Data>2e000f00000000000000000000000000000000000000000000000000000000000000000064000300d007d00705000a0000000000000000000000000000000000000000000000000000000000</Data>
                        </InitCmd>
The following user(s) said Thank You: andrax, Columbo

Please Log in or Create an account to join the conversation.

More
06 Aug 2021 11:12 #217048 by Columbo
Hallo db1981,

meinst du mit complex entry eintragen, dass was  jc2ktr in diesem Thread

forum.linuxcnc.org/27-driver-boards/4068...ercat-devices#189921

gemacht hat?
<masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="1000">
<slave idx="0" type="generic" vid="00000A88" pid="0A880002" configPdos="true">
<syncManager idx="0" dir="out" />
<syncManager idx="1" dir="in" />
<syncManager idx="2" dir="out">
	<pdo idx="1601">
		<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="ProfileTargetPosition" halType="u32" />
		<pdoEntry idx="6040" subIdx="00" bitLen="16" halType="Complex">
		<complexEntry bitLen="1" halPin="Switch ON" halType="bit" />
		<complexEntry bitLen="1" halPin="Enable Voltage" halType="bit" />
		<complexEntry bitLen="1" halPin="Quick Stop" halType="bit" />
		<complexEntry bitLen="1" halPin="Enable Operation" halType="bit" />
		<complexEntry bitLen="1" halPin="Operating mode-related bit 1" halType="bit" />
		<complexEntry bitLen="1" halPin="Operating mode-related bit 2" halType="bit" />
		<complexEntry bitLen="1" halPin="Operating mode-related bit 3" halType="bit" />
		<complexEntry bitLen="1" halPin="Fault Reset" halType="bit" />
		<complexEntry bitLen="1" halPin="Time out" halType="bit" />
		<complexEntry bitLen="1" halPin="Operating mode-related bit 4" halType="bit" />
		<complexEntry bitLen="1" halPin="bit10" halType="bit" />
		<complexEntry bitLen="1" halPin="bit11" halType="bit" />
		<complexEntry bitLen="1" halPin="bit12" halType="bit" />
		<complexEntry bitLen="1" halPin="bit13" halType="bit" />
		<complexEntry bitLen="1" halPin="bit14" halType="bit" />
		<complexEntry bitLen="1" halPin="bit15" halType="bit" />
		</pdoEntry>
	</pdo>
</syncManager>
<syncManager idx="3" dir="in">
	<pdo idx="1A00">
		<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="Actual Position" halType="u32" />
		<pdoEntry idx="6041" subIdx="00" bitLen="16" halType="Complex">
		<complexEntry bitLen="1" halPin="Ready to Switch ON" halType="bit" />
		<complexEntry bitLen="1" halPin="Switched On" halType="bit" />
		<complexEntry bitLen="1" halPin="Operation Enabled" halType="bit" />
		<complexEntry bitLen="1" halPin="Fault" halType="bit" />
		<complexEntry bitLen="1" halPin="Voltage Enabled" halType="bit" />
		<complexEntry bitLen="1" halPin="Quickstop" halType="bit" />
		<complexEntry bitLen="1" halPin="Switch On Disabled" halType="bit" />
		<complexEntry bitLen="1" halPin="Warning" halType="bit" />
		<complexEntry bitLen="1" halPin="keep" halType="bit" />
		<complexEntry bitLen="1" halPin="Remote" halType="bit" />
		<complexEntry bitLen="1" halPin="Target Reach" halType="bit" />
		<complexEntry bitLen="1" halPin="bit11-keep" halType="bit" />
		<complexEntry bitLen="1" halPin="bit12-keep" halType="bit" />
		<complexEntry bitLen="1" halPin="bit13-keep" halType="bit" />
		<complexEntry bitLen="1" halPin="bit14-keep" halType="bit" />
		<complexEntry bitLen="1" halPin="bit15-keep" halType="bit" />
		</pdoEntry>
	</pdo>
</syncManager>
</slave>
</master>
</masters>

Wie sich das Status- und Steuerwort bitweise aufsplittet, weiß ich. Kann ich (dich) irgendwie bei der ethercat_conf.xml unterstützen?

Grüße
Columbo

Please Log in or Create an account to join the conversation.

More
06 Aug 2021 12:10 #217055 by andrax
Hi Columbo,
schau dir das noch mal näher an:
github.com/sittner/linuxcnc-ethercat/tre...er/examples/initcmds
Zuerst liest du den Export ein:
<slave idx="1" type="EL7211">
      <initCmds filename="AM8121-xFx0-000x_MDP.xml"/>
      <dcConf assignActivate="700" sync0Cycle="*1" sync0Shift="30000" sync1Cycle="*1" sync1Shift="1000"/>
    </slave>

    <slave idx="2" type="generic" vid="00000002" pid="14566012" configPdos="true">
      <initCmds filename="AX5206-AM8032-async.xml"/>
Das hab ich damals nicht beachtet und mir deshalb viel zu viel Arbeit gemacht.
und dann brauchst du nur noch deine Pins zu zuweisen und bist fertig.
Complex bedeutet ganz einfach "zusammengesetzt"
Also:
<pdoEntry idx="6040"  >>Adresse
subIdx="00" >> Unteradresse
bitLen="16" >> Bitlänge also Typ (U)INT bzw WORD
halType="Complex"> >> Zusammengesetzt
Unten drunter zählst du einfach auf was für jedes bit steht.
Hier mal ein Beispiel:
www.sps-lehrgang.de/bit-und-byte/
Der Sinn dahinter ist ganz einfach. Normalerweise bräuchtest du für für jedes Signal eine Leitung.
Geht aber nicht, da du nur eine 2-Draht Leitung hast.
Also müsstest du jedes Signal (Servo-ON, Endschalter usw.) einzeln über die Leitung jagen.
Mit Addressierung (Beschreibung) kommt da ganz schön was zusammen. Das kostet Zeit und macht das System langsam.
Also packst du die Signale in ein (U)INT und schiebst die mit einmal über die Leitung.
Auf der anderen Seite nimmst du das (U)INT wieder auseinander und hast deine Signale da liegen.
Genauso wie in der .xml
<complexEntry bitLen="1" halPin="Ready to Switch ON" halType="bit" />
<complexEntry bitLen="1" halPin="Switched On" halType="bit" />
<complexEntry bitLen="1" halPin="Operation Enabled" halType="bit" />
<complexEntry bitLen="1" halPin="Fault" halType="bit" />
<complexEntry bitLen="1" halPin="Voltage Enabled" halType="bit" />
<complexEntry bitLen="1" halPin="Quickstop" halType="bit" />
<complexEntry bitLen="1" halPin="Switch On Disabled" halType="bit" />
<complexEntry bitLen="1" halPin="Warning" halType="bit" />
<complexEntry bitLen="1" halPin="keep" halType="bit" />
<complexEntry bitLen="1" halPin="Remote" halType="bit" />
<complexEntry bitLen="1" halPin="Target Reach" halType="bit" />
<complexEntry bitLen="1" halPin="bit11-keep" halType="bit" />
<complexEntry bitLen="1" halPin="bit12-keep" halType="bit" />
<complexEntry bitLen="1" halPin="bit13-keep" halType="bit" />
<complexEntry bitLen="1" halPin="bit14-keep" halType="bit" />
<complexEntry bitLen="1" halPin="bit15-keep" halType="bit" />

Gruß

Andre
 
The following user(s) said Thank You: Columbo

Please Log in or Create an account to join the conversation.

More
06 Aug 2021 12:39 - 06 Aug 2021 12:44 #217057 by db1981
da war ja noch was....

anbei die richtige ethercat conf,  complex entry deshalb da für jeden node nur ein pdo array auf einem subindex für TX und RX gemappt wird.(8x 8byte = 64bits) das array kann lcec_conf nur als ganzes addressieren...

zum testen reicht die config.
 
Später kannst du steuer und statuswort natürlich mit weiteren complexentrys auch zu einzel bits zerlegen (wie von andre erklärt)  oder z.b. das cia402 component dahinterschalten.

 
Attachments:
Last edit: 06 Aug 2021 12:44 by db1981.
The following user(s) said Thank You: Columbo

Please Log in or Create an account to join the conversation.

More
06 Aug 2021 13:50 #217061 by Columbo
Hallo Jungs,

nu hab ich meine Hausaufgaben fürs WE!

Danke und Grüße
Columbo

Please Log in or Create an account to join the conversation.

More
07 Aug 2021 17:07 #217143 by andrax
Hi Columbo,

Ich denke das wird schon.
Ich hab viel größere Probleme.
Erst raucht mir ein Encodereingang an der 7i97 ab und jetzt zicken meine Servos rum. Fehler über Fehler.

Gruß 

Andre

Please Log in or Create an account to join the conversation.

Time to create page: 0.181 seconds
Powered by Kunena Forum