Stránka 2 z 2
Re: 7i97 konfigurace přes mesact
Napsal: 4. 1. 2024, 12:34
od jiri.plucha
Nulová integrovaná složka by imho neměla způsobit to, že to vůbec nefunguje.
PID jsem nastavil
Kód: Vybrat vše
P=50 (60, 250, 500 ani jedno nefungovalo)
I=0,001
D=0
OUTPUT_SCALE = 10
OUTPUT_MIN_LIMIT = -10
OUTPUT_MAX_LIMIT = 10
drátky k s analogovým signálem k řízení jsem pokaždé prohodil
takže vůbec nevím, jak dál.
může být chyba tady?
Kód: Vybrat vše
[TASK]
TASK = milltask
CYCLE_TIME = 0.05
#CYCLE_TIME = 0.01
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 2.50
MAX_LINEAR_VELOCITY = 25.00
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
edit:
Robokope, byl jsi rychlejší než já, děkuju za odpověď
Jak si vydefinuju outputy? Jsem trochu začátečník

Re: 7i97 konfigurace přes mesact
Napsal: 4. 1. 2024, 1:15
od robokop
Projdi ten retezec clanek po clanku abys videl co ti kde vylejza
Re: 7i97 konfigurace přes mesact
Napsal: 6. 1. 2024, 1:03
od jiri.plucha
Tak jsem zase o krůček postoupil, každopádně děkuju, že jste se mi snažili pomoci, moje minulá chyba byla neskutečně hloupá, na mese jsem měl analog out + píchlej do ena+.
Osa x mi pěkně drží na místě, když dám jog, tak popojede, ještě na tom bude trochu ladění, ale jezdí.
Osy Y a Z se ani nehnou, jako kdyby analogové výstupy byly mrtvé. (encodery měří správně)
Přehodil jsem na mesa kartě analog out a encoder od X osy s osou Y. Fyzická osa Y se potom chovala, jak jsem si přál, takže mašina funguje jak má, akorát to musím lépe vysvětlit lcnc.
ini i hal se mi zdají pro všechny osy dost stejné
Kód: Vybrat vše
#*******************
# AXIS X JOINT 0
#*******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain [JOINT_0]I
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
net x-index-enable <=> pid.x.index-enable
net x-enable => pid.x.enable
# hardware enable first 4 PWMGens and software enable PWMGen 00 on x-enable
net x-enable => [HMOT](CARD0).pwmgen.00.enable
net x-pos-cmd => pid.x.command
net x-pos-fb => pid.x.feedback
net x-output <= pid.x.output
# ---PWM Generator signals/setup---
setp [HMOT](CARD0).pwmgen.00.output-type 1 #PWM pin0
setp [HMOT](CARD0).pwmgen.00.offset-mode 1 # offset mode so 50% = 0
setp [HMOT](CARD0).pwmgen.00.scale [JOINT_0]OUTPUT_SCALE
net x-output => [HMOT](CARD0).pwmgen.00.value
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-enable <= joint.0.amp-enable-out
# ---Encoder feedback signals/setup---
setp [HMOT](CARD0).encoder.00.counter-mode 0
setp [HMOT](CARD0).encoder.00.filter 1
setp [HMOT](CARD0).encoder.00.index-invert 0
setp [HMOT](CARD0).encoder.00.index-mask 0
setp [HMOT](CARD0).encoder.00.index-mask-invert 0
setp [HMOT](CARD0).encoder.00.scale [JOINT_0]ENCODER_SCALE
net x-pos-fb <= [HMOT](CARD0).encoder.00.position
net x-vel-fb <= [HMOT](CARD0).encoder.00.velocity
net x-pos-fb => joint.0.motor-pos-fb
net x-index-enable joint.0.index-enable <=> [HMOT](CARD0).encoder.00.index-enable
net x-pos-rawcounts <= [HMOT](CARD0).encoder.00.rawcounts
# ---setup home / limit switch signals---
net min-home-x => joint.0.home-sw-in
net min-home-x => joint.0.neg-lim-sw-in
net x-pos-limit => joint.0.pos-lim-sw-in
#*******************
# AXIS Y JOINT 1
#*******************
setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain [JOINT_1]I
setp pid.y.Dgain [JOINT_1]D
setp pid.y.bias [JOINT_1]BIAS
setp pid.y.FF0 [JOINT_1]FF0
setp pid.y.FF1 [JOINT_1]FF1
setp pid.y.FF2 [JOINT_1]FF2
setp pid.y.deadband [JOINT_1]DEADBAND
setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y.error-previous-target true
net y-index-enable <=> pid.y.index-enable
net y-enable => pid.y.enable
# software enable PWMGen 01 on y-enable
net y-enable => [HMOT](CARD0).pwmgen.01.enable
net y-pos-cmd => pid.y.command
net y-pos-fb => pid.y.feedback
net y-output <= pid.y.output
net y-enable => [HMOT](CARD0).pwmgen.01.enable
# ---PWM Generator signals/setup---
setp [HMOT](CARD0).pwmgen.01.output-type 1 #PWM pin0
setp [HMOT](CARD0).pwmgen.01.offset-mode 1 # offset mode so 50% = 0
setp [HMOT](CARD0).pwmgen.01.scale [JOINT_1]OUTPUT_SCALE
net y-output => [HMOT](CARD0).pwmgen.01.value
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-enable <= joint.1.amp-enable-out
# ---Encoder feedback signals/setup---
setp [HMOT](CARD0).encoder.01.counter-mode 0
setp [HMOT](CARD0).encoder.01.filter 1
setp [HMOT](CARD0).encoder.01.index-invert 0
setp [HMOT](CARD0).encoder.01.index-mask 0
setp [HMOT](CARD0).encoder.01.index-mask-invert 0
setp [HMOT](CARD0).encoder.01.scale [JOINT_1]ENCODER_SCALE
net y-pos-fb <= [HMOT](CARD0).encoder.01.position
net y-vel-fb <= [HMOT](CARD0).encoder.01.velocity
net y-pos-fb => joint.1.motor-pos-fb
net y-index-enable joint.1.index-enable <=> [HMOT](CARD0).encoder.01.index-enable
net y-pos-rawcounts <= [HMOT](CARD0).encoder.01.rawcounts
# ---setup home / limit switch signals---
net min-home-y => joint.1.home-sw-in
net min-home-y => joint.1.neg-lim-sw-in
net y-pos-limit => joint.1.pos-lim-sw-in
#*******************
# AXIS Z JOINT 2
#*******************
setp pid.z.Pgain [JOINT_2]P
setp pid.z.Igain [JOINT_2]I
setp pid.z.Dgain [JOINT_2]D
setp pid.z.bias [JOINT_2]BIAS
setp pid.z.FF0 [JOINT_2]FF0
setp pid.z.FF1 [JOINT_2]FF1
setp pid.z.FF2 [JOINT_2]FF2
setp pid.z.deadband [JOINT_2]DEADBAND
setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.z.error-previous-target true
net z-index-enable <=> pid.z.index-enable
net z-enable => pid.z.enable
# software enable PWMGen 02 on z-enable
net z-enable => [HMOT](CARD0).pwmgen.02.enable
net z-pos-cmd => pid.z.command
net z-pos-fb => pid.z.feedback
net z-output <= pid.z.output
# ---PWM Generator signals/setup---
setp [HMOT](CARD0).pwmgen.02.output-type 1 #PWM pin0
setp [HMOT](CARD0).pwmgen.02.offset-mode 1 # offset mode so 50% = 0
setp [HMOT](CARD0).pwmgen.02.scale [JOINT_2]OUTPUT_SCALE
net z-output => [HMOT](CARD0).pwmgen.02.value
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-enable <= joint.2.amp-enable-out
# ---Encoder feedback signals/setup---
setp [HMOT](CARD0).encoder.02.counter-mode 0
setp [HMOT](CARD0).encoder.02.filter 1
setp [HMOT](CARD0).encoder.02.index-invert 0
setp [HMOT](CARD0).encoder.02.index-mask 0
setp [HMOT](CARD0).encoder.02.index-mask-invert 0
setp [HMOT](CARD0).encoder.02.scale [JOINT_2]ENCODER_SCALE
net z-pos-fb <= [HMOT](CARD0).encoder.02.position
net z-vel-fb <= [HMOT](CARD0).encoder.02.velocity
net z-pos-fb => joint.2.motor-pos-fb
net z-index-enable joint.2.index-enable <=> [HMOT](CARD0).encoder.02.index-enable
net z-pos-rawcounts <= [HMOT](CARD0).encoder.02.rawcounts
# ---setup home / limit switch signals---
net max-home-z => joint.2.home-sw-in
net z-neg-limit => joint.2.neg-lim-sw-in
net max-home-z => joint.2.pos-lim-sw-in
Re: 7i97 konfigurace přes mesact
Napsal: 26. 1. 2024, 12:27
od jiri.plucha
Ahoj, zase jsem o krůček dál, předchozí problém byl skutečně v halu, osa x mi fungovala, tak jsem překopíroval pwm část x osy do osy y a z a přepsal jsem čísla, nevím proč, ale pomohlo to. Hal který jsem používal jako výchozí je basic nastavení od mesy, tak mě trochu překvapuje, že už podruhé v jejich konfiguraci bylo něco nefunkčního.
Teďka se snažím zapojit koncáky, rada by se mi zase hodila.
našel jsem si dráty od koncáků, které jsou standartně spojené a rozpojí se, když osa dojede na konec.
v halu mám koncáky takhle:
Kód: Vybrat vše
# --- MIN-HOME-X ---
net min-home-x <= [HMOT](CARD0).inmux.00.input-00-not
# --- MIN-HOME-Y ---
net min-home-y <= [HMOT](CARD0).inmux.00.input-01-not
# --- MAX-HOME-Z ---
net max-home-z <= [HMOT](CARD0).inmux.00.input-02-not
#*******************
# AXIS X JOINT 0
#*******************
# ---setup home / limit switch signals---
net min-home-x => joint.0.home-sw-in
net min-home-x => joint.0.neg-lim-sw-in
net x-pos-limit => joint.0.pos-lim-sw-in
#pro další osy podobně
na kartě to vidím takhle
Kód: Vybrat vše
hm2/hm2_7i97.0: IO Pin 025 (Internal InMux0): SSR #0, pin AC Ref (internal) (Output)
hm2/hm2_7i97.0: IO Pin 026 (Internal InMux1): InMux Input Mux #0, pin addr0 (Output)
hm2/hm2_7i97.0: IO Pin 027 (Internal InMux2): InMux Input Mux #0, pin addr1 (Output)
hm2/hm2_7i97.0: IO Pin 028 (Internal InMux3): InMux Input Mux #0, pin addr2 (Output)
hm2/hm2_7i97.0: IO Pin 029 (Internal InMuxData): InMux Input Mux #0, pin addr3 (Output)
v manuálu k 7i97 píší tohle
TB4 PIN SIGNAL DIRECTION
1 IN0 TO 7I97
2 IN1 TO 7I97
3 IN COMMON 0,1 TO 7I97
4 IN2 TO 7I97
5 IN3 TO 7I97
6 IN COMMON 2,3 TO 7I97
tak jsem vždycky jeden konec od koncáku připojil k zemi, druhý k inputu, nevím, jestli je to správně, rozhodně to nefunguje, ale chtěl jsem se podělit o úspěch, že se mašina jinak hejbe.
Re: 7i97 konfigurace přes mesact
Napsal: 1. 2. 2024, 11:46
od jiri.plucha
Ahoj, drátky od koncáků jsem napoprvé zapojoval podle rady chatbota a musím říct, že to je špatný nápad. Napodruhé mi to funguje, kromě erroru z osy Y:
"Home Switch Inactive before start of backoff move"
Ale trochu doufám, že to pujde hardwarově vyřešit koumáním s koncákem.
Větší potíž mám se směry pohybu os, potřeboval bych otočit X a Y.
COORDINATES = -X-Y Z nepomohlo
napadá mě otočit to takhle:
ENCODER_SCALE -170
OUTPUT_SCALE = 10.0
MIN_LIMIT = 10
MAX_LIMIT = -10
pomohlo by to? nepřijde mi to jako elegantní řešení.
V halu se rýpu nerad a drátky od encoderů jsem rád že mám, tak jak jsou.
Jinak takhle ta mašinka vypadá:
Re: 7i97 konfigurace přes mesact
Napsal: 1. 2. 2024, 12:56
od zz912
Myslím si, že ještě bude potřeba invertovat pwmgen na analogový výstupy. Mrkni do HAL pinů a HAL parametrů, jestli tma nebude nějaký invert v hm2 předchystaný.
Re: 7i97 konfigurace přes mesact
Napsal: 1. 2. 2024, 1:08
od jiri.plucha
Kód: Vybrat vše
# ---PWM Generator signals/setup---
setp [HMOT](CARD0).pwmgen.00.output-type 1 #PWM pin0
setp [HMOT](CARD0).pwmgen.00.offset-mode 1 # offset mode so 50% = 0
setp [HMOT](CARD0).pwmgen.00.scale [JOINT_0]OUTPUT_SCALE
net x-output => [HMOT](CARD0).pwmgen.00.value
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-enable <= joint.0.amp-enable-out
uplně předchystaný mi to nepřijde, tak mě napadá v ini udělat záporný encoder scale a fyzicky prohodit drátky analog out...
Re: 7i97 konfigurace přes mesact
Napsal: 1. 2. 2024, 1:37
od zz912
Myslel jsem, at se podivas do HALSHOW.
Re: 7i97 konfigurace přes mesact
Napsal: 16. 2. 2024, 11:53
od jiri.plucha
Ahoj
V ini udělat záporný encoder scale a fyzicky prohodit drátky analog out... pomohlo.
teďka řeším, jak roztočit vřeteno. Vřetena na stroji jsou dvě, jedno by mi pro začátek stačilo, ale simodrive modul k vřetenu mi přijde dost složitý, tak uvažuji, jestli by mi nepomohl tenhle frekvenční měnič:
frekvenční měnič
vřeteno má 5,5kw, 220V, 300Hz, 18000 ot.
Simodrive frekvenční měnič je určitě funkční, ale rád bych si usnadnil práci, co si o tom myslíte?
Re: 7i97 konfigurace přes mesact
Napsal: 16. 2. 2024, 11:58
od Charon
jiri.plucha píše: ↑16. 2. 2024, 11:53
Ahoj
V ini udělat záporný encoder scale a fyzicky prohodit drátky analog out... pomohlo.
teďka řeším, jak roztočit vřeteno. Vřetena na stroji jsou dvě, jedno by mi pro začátek stačilo, ale simodrive modul k vřetenu mi přijde dost složitý, tak uvažuji, jestli by mi nepomohl tenhle frekvenční měnič:
frekvenční měnič
vřeteno má 5,5kw, 220V, 300Hz, 18000 ot.
Simodrive frekvenční měnič je určitě funkční, ale rád bych si usnadnil práci, co si o tom myslíte?
No nahradit fakt dobrej simodrive velmi jasnou čínou, no nevim
I za cenu komplikovanejsiho zapojeni/programování
Re: 7i97 konfigurace přes mesact
Napsal: 16. 2. 2024, 1:20
od jiri.plucha
Taky mi to nepřijde jako elegantní řešení měnit Simodrive za čínu. Nabízí se otázka, jestli byste někdo nebyl ochotnej za mnou přijet do Vysokého nad Jizerou (1h 40min od Prahy). Určitě jsem připravený platit penězi.
Re: 7i97 konfigurace přes mesact
Napsal: 16. 2. 2024, 7:31
od zz912
A máš manuál k tomu simodrive? Když už jsi se dostal tak daleko, tak to už dáš.
Re: 7i97 konfigurace přes mesact
Napsal: 3. 9. 2024, 10:32
od jiri.plucha
Ahoj, díky za dosavadní rady,
stroj běhá, vřeteno se točí, ale řeším vakl na ose X.
mám tam ozubený hřeben, pastorek motor s převodovkou, nejdřív jsem skusil přizvednout motor, to nepomohlo, tak jsem zkoušel nastavit backlash v LCNC, to vůbec nepomohlo a nakonec jsem došel k tomu, že mám pravděpodobně nastavený velký backlash v simodrive611. Motor jsem hodil níž a všechno šlape lépe, ale rád bych, aby mi ta mašina jezdila trochu lépe. Nejde mi se spojit přes simocomU se semidrivem přes rs232. Moc mi to nejde vygooglit, ale očekával jsem jednoduchou komunikaci přes com1, v nastavení simocomu je ještě možnost přes profibus, ale s tím nemám žádné zkušenosti, pošťouchnutí správným směrem by mi hodně pomohlo.
Re: 7i97 konfigurace přes mesact
Napsal: 7. 10. 2024, 4:00
od jiri.plucha
Ahoj, nakonec je to vymačkaná drážka na pastorku.
pastorek nevypadá nic moc, nejraději bych to zalepil, ale kroutící moment tam bude solidní a vypadá to, že tenhle pastorek nebude věčný a brzo to budu rozdělávat znova. Tak bych se chtěl zeptat na váš názor, co s tím...