584.826 aktive Mitglieder*
5.119 Besucher online*
Kostenfrei registrieren
Anmelden Registrieren
HEIDENHAIN Forum

Einzelnes Bit mit Q Parameter abfragen

Beitrag 26.06.2019, 15:46 Uhr
Steno
Steno
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 18.12.2012
Beiträge: 32

Hallo Mitschwitzende...

ich bin neu bei TNC und hab hier schon einige Beiträge gelesen. Dabei bin ich mehrmals auf die Frage gestossen, wie man einzelne Bits mittels Q Parameter testen kann. Z.B. um die PLC Statusbits der Werkzeugtabelle auszulesen. Hier nun meine Lösung.

Nehmen wir an, der zu testende Wert befindet sich in Q60 und wir wollen Bit4 abfragen.

Q60 = INT (Q60 / 2 ^ 4)

Zuerst wird der Wert duch 2^4, das ist die gesuchte Bitposition und in dem Fall 16, geteilt. Das entspricht praktisch einem Rechtsshift um 4 bit. Die unteren Bits 0-3 befinden sich nun nach dem Komma und werden mit INT abgeschnitten. Es sind also nur noch die oberen Bits übrig.

Q60 = FRAC (Q60 / 2)

Jetzt teilen wir den Wert durch 2, d.h. das gesuchte Bit wird auf die Nachkommastelle verschoben. Nun können wir mit FRAC die Vorkommastellen und damit die oberen Bits abschneiden. Übrig bleibt das gesuchte Bit nach dem Komma.

Q60 = Q60 * 2

Das wird nun wieder mit 2 multipliziert und das gesuchte Bit hat den Wert 0 bzw. 1. Diesen letzten Schritt mit *2 könnte man sich theoretisch sparen, wenn man immer auf 0 abfragt. Aber ich finde es so schöner.

Damit man nicht so viele Zeilen verschwendet, etwas kompakter.

Q60 = (FRAC ((INT (Q60 / 2 ^ 4)) / 2)) * 2 ; Bit4 maskieren


Die Abfrage dann ganz normal mit z.B.

FN 9: IF +Q60 EQU +0 GOTO LBL xx


Die Formel sollte universell für alle Bits geeignet sein und die Bitzahl muß zwischen 0 und 56 liegen. Ein Q Parameter hat 57 Bits Vorkommastellen, zumindest bei der TNC430. Getestet habe ich aber nur bis Bit7.

So, das wars schon. Ich hoffe ich kann hier etwas zurück geben. Mir wurde auch schon viel geholfen.

Vielen Dank und beste Grüße,
Steffen

Der Beitrag wurde von Steno bearbeitet: 26.06.2019, 15:55 Uhr
TOP    
Beitrag 26.06.2019, 17:55 Uhr
HolgiT
HolgiT
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 21.06.2007
Beiträge: 480

Guude!

Was kann man damit anfangen bzw. für was ist das nützlich?

Gruß aus Middlhesssn,

Holgi


--------------------
Nur mal so nebenbei: alle meine Texte werden ohne Computer Rechtschreibprüfung geschrieben.
Das geschieht bei mir ganz altmodisch, nämlich durch mich persönlich. :-)
TOP    
Beitrag 26.06.2019, 18:06 Uhr
Steno
Steno
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 18.12.2012
Beiträge: 32

Steht doch oben, wenn man im Programm einzelne Bits testen und verzweigen will. Z.B. beim Werkzeugwechsel die PLC-Parameter abfragen und verschiedene Aktionen ausführen. Oder was auch immer...
TOP    
Beitrag 26.06.2019, 18:12 Uhr
Snoopy_1993
Snoopy_1993
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 09.06.2012
Beiträge: 1.035

QUOTE (HolgiT @ 26.06.2019, 18:55 Uhr) *
Guude!

Was kann man damit anfangen bzw. für was ist das nützlich?

Gruß aus Middlhesssn,

Holgi


Man könnte aus dem Programm heraus Maschinenparameter lesen und bearbeiten
Oder den PLC Status von einem Werkzeug auslesen. IKZ-Werkzeug oder Übergröße zB


--------------------
Mein Youtube ►► CNC World ◄◄
________________________________________________________________________________

hyperMill ✔
Hermle C30U ✔
Hermle C50U ✔
Grob G550 mit PSS-R ✔
DMG Mori NTX2000 ✔
TOP    
Beitrag 27.06.2019, 20:40 Uhr
HolgiT
HolgiT
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 21.06.2007
Beiträge: 480

Nunja, danke, das habe ich schon verstanden, war vielleicht mißverständlich gefragt. smile.gif

Wann braucht man sowas oder wer (also diese Berechnung)?
Habe ich in meinen 35Jahren CNC noch nie gebraucht.
Wenn ich den Stand eines MP wissen will, gehe ich halt in die Maschinenparameter und schaue mir das an.
Will ich den Stand eines Werkzeuges wissen, gehe ich in die Werkzeugtabelle und sehe es.

Welche Bits müßte man im Programm auslesen, um dann auf ein LBL zu springen?

Oder denke ich da falsch oder bin ich zu blöd, das zu verstehen? wacko.gif


--------------------
Nur mal so nebenbei: alle meine Texte werden ohne Computer Rechtschreibprüfung geschrieben.
Das geschieht bei mir ganz altmodisch, nämlich durch mich persönlich. :-)
TOP    
Beitrag 27.06.2019, 22:50 Uhr
Sacculina
Sacculina
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 13.01.2010
Beiträge: 114

Man könnte z.B. im Programmlauf - direkt nach TOOL CALL - prüfen ob der Haken bei 'Wzg ist vermessen' (PLC-Value -> Maschinenabhängig) gesetzt ist.
Ist er es nicht könnte man dem Bediener den Hinweis geben, doch noch mal nachzuschauen bevor es weitergeht.
TOP    
Beitrag 28.06.2019, 07:35 Uhr
Snoopy_1993
Snoopy_1993
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 09.06.2012
Beiträge: 1.035

1 FN 18: SYSREAD Q29 = ID2000 NR10 IDX1605 ;Status WKZ-Bruch
2 FN 17: SYSWRITE ID 2000 NR10 IDX1605 =+0 ;Werkzeugbruch aus
3 FN 0: Q20 =+0 ;Platznummer
4 LBL "START"
5 FN 9: IF +Q20 EQU +103 GOTO LBL "END"
6 FN 18: SYSREAD Q21 = ID51 NR1 IDXQ20 ;WERKZEUGNUMMER
7 FN 1: Q20 =+Q20 + +1 ;Platznummer hochzaehlen
8 FN 9: IF +Q21 EQU -1 GOTO LBL "START"
9 ;
10 FN 18: SYSREAD Q22 = ID50 NR12 IDXQ21
11 ;
12 FN 12: IF +Q22 LT +3.1 GOTO LBL "START" ;
13 FN 11: IF +Q22 GT +15.1 GOTO LBL "START"
14 ;
15 FN 18: SYSREAD Q25 = ID50 NR28 IDXQ21
16 FN 12: IF +Q25 LT +3000 GOTO LBL "TOOL_CALL"
17 FN 0: Q25 =+3000
18 ;
19 ;
20 LBL "TOOL_CALL"
21 TOOL CALL Q21 Z SQ25
22 ;
23 FN 9: IF +Q20 EQU +102 GOTO LBL "END"
24 ;
25 FN 9: IF +1 EQU +1 GOTO LBL "START"
26 ;
27 LBL "END"
28 FN 18: SYSREAD Q26 = ID20 NR1
29 FN 9: IF +Q26 EQU +0 GOTO LBL "ENDE"
30 FN 9: IF +Q88 EQU +0 GOTO LBL "ENDE"
31 TOOL CALL 0 Z S50
32 LBL "ENDE"
33 FN 17: SYSWRITE ID 2000 NR10 IDX1605 =+Q29 ;WKZ-Bruch an/aus

Das wäre ein Beispiel.
Dieses Programm schaut ob im Magazin Werkzeuge vorhanden sind welche vermessen werden müssen es aber noch nicht sind.
Wenn das der Fall ist wird das Werkzeug aufgerufen und vermessen


--------------------
Mein Youtube ►► CNC World ◄◄
________________________________________________________________________________

hyperMill ✔
Hermle C30U ✔
Hermle C50U ✔
Grob G550 mit PSS-R ✔
DMG Mori NTX2000 ✔
TOP    
Beitrag 28.06.2019, 09:49 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.922

QUOTE (HolgiT @ 27.06.2019, 21:40 Uhr) *
Habe ich in meinen 35Jahren CNC noch nie gebraucht.

Das lässt vermuten, dass du 35 Jahre lang die Möglichkeiten, die dir deine Steuerung(en) geboten hat / haben, nicht genutzt hast.
TOP    
Beitrag 28.06.2019, 20:07 Uhr
HolgiT
HolgiT
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 21.06.2007
Beiträge: 480

@Sacculina und @Snoopy_1993: Gut, dankeschön. smile.gif

Die modernste Steuerung war bisher die iTNC530HSCI von 2014 und Siemens 840 ShopTurn von 2014.
Soweit ich weiß, können die das nicht, kann mich auch täuschen.


QUOTE (CNCFr @ 28.06.2019, 09:49 Uhr) *
Das lässt vermuten, dass du 35 Jahre lang die Möglichkeiten, die dir deine Steuerung(en) geboten hat / haben, nicht genutzt hast.

Kleiner Schlaumeier wink.gif .
Da ich bisher immer nur Einzelteile und Kleinstserien gemacht habe, wußte ich immer, welche Werkzeuge im Speicher sind und die dann natürlich auch vermessen waren.
Ich nehme auch an, daß die alten Steuerungen das nicht konnten und wenn ja, brauchte ich das nicht, siehe vorherigen Satz.
Mag ja sein, daß solche Abfragen vorteilhaft sein können wenn das nötig ist. Muß die Steuerung aber auch können.
Selbst wenn die Steuerungen, mit denen ich zur Zeit arbeite, das können, so brauche ich das halt momentan nicht und rückwärtig betrachtet, habe ich sowas auch nicht vermisst.
Ansonsten nutze ich natürlich das was die jeweilige Steuerung kann, wenn ich es brauche. Aber alles was eine Steuerung kann, braucht man nicht unbedingt auch. smile.gif


--------------------
Nur mal so nebenbei: alle meine Texte werden ohne Computer Rechtschreibprüfung geschrieben.
Das geschieht bei mir ganz altmodisch, nämlich durch mich persönlich. :-)
TOP    
Beitrag 28.06.2019, 21:38 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.922

QUOTE (HolgiT @ 28.06.2019, 21:07 Uhr) *
Die modernste Steuerung war bisher die iTNC530HSCI von 2014 und Siemens 840 ShopTurn von 2014.
Soweit ich weiß, können die das nicht, kann mich auch täuschen.

Ja, du täuschst dich, zumindest was die 840D angeht.
Man könnte es natürlich auch bei der 840D genau so machen, wie Steno das hier vorgeführt hat, tut man aber nicht, weil es da Bitoperationen gibt, mit denen das viel einfacher und übersichtlicher geht (schon ungefähr seit einem Vierteljahrhundert).
TOP    
Beitrag 29.06.2019, 08:36 Uhr
HolgiT
HolgiT
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 21.06.2007
Beiträge: 480

QUOTE (CNCFr @ 28.06.2019, 21:38 Uhr) *
Ja, du täuschst dich, zumindest was die 840D angeht.
Man könnte es natürlich auch bei der 840D genau so machen, wie Steno das hier vorgeführt hat, tut man aber nicht, weil es da Bitoperationen gibt, mit denen das viel einfacher und übersichtlicher geht (schon ungefähr seit einem Vierteljahrhundert).


Ok, laß es einfach gut sein. smile.gif
Du weißt es schon viel länger und nutzt es vielleicht, ich kannte es bisher nicht und habe es auch nicht gebraucht und werde es mein verbleibendes Restarbeitsleben vorraussichtlich auch nicht mehr brauchen.


--------------------
Nur mal so nebenbei: alle meine Texte werden ohne Computer Rechtschreibprüfung geschrieben.
Das geschieht bei mir ganz altmodisch, nämlich durch mich persönlich. :-)
TOP    



1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: