Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Abfrage Vorschubpoti / Override

Beitrag 12.11.2009, 16:43 Uhr
CNCRalli
CNCRalli
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 12.11.2009
Beiträge: 12
An alle NC Spezi's

Lässt sich die Position des Vorschub-Override abfragen? - ggf. über die Synchronaktionen?

Konkret: Programm wird nicht weiterbearbeitet, wenn Override nicht auf 100% steht.

DANKE


--------------------
....und immer ne handvoll Späne unter den Schuhen ..... in diesem Sinne

CNCRALLI
   
Beitrag 12.11.2009, 19:56 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.921
Es gibt die Systemvariablen:

$AC_OVR
$AC_PLC_OVR
$AC_TOTAL_OVR



Auf den Seiten 1-103 u. 1-104 im folgendem link steht mehr darüber:

http://www.automation.siemens.com/doconweb...ultType=content

Der Beitrag wurde von CNCler bearbeitet: 12.11.2009, 19:58 Uhr
   
Beitrag 12.11.2009, 21:18 Uhr
CNCRalli
CNCRalli
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 12.11.2009
Beiträge: 12
CNCler, erst einmal vielen Dank für die schnelle Hilfe. Die Variablen

$AC_PLC_OVR
$AC_TOTAL_OVR

waren mir neu - da meine Doku wohl nicht auf dem neusten Stand ist.
$AC_OVR kann nur im IPO Takt abgefragt werden - sonst 100% !
Das Abfragen im IPO Takt bekomme ich nicht hin.

Die anderen zwei Variablen werde ich testen und mich melden.

Bin gespannt :-)


--------------------
....und immer ne handvoll Späne unter den Schuhen ..... in diesem Sinne

CNCRALLI
   
Beitrag 12.11.2009, 22:20 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.921
QUOTE (CNCRalli @ 12.11.2009, 21:18) *
$AC_OVR kann nur im IPO Takt abgefragt werden - sonst 100% !
Das Abfragen im IPO Takt bekomme ich nicht hin.


Vielleicht gibt es da ein Mißvertändnis. Der Text sagt, dass die Variable in jedem IPO-Takt geschreiben werden muss, wenn man den Override vom Programm aus verändern will (per Synchronaktionen) und wenn ein so verändertet Wert ständig wirksam bleiben soll.
Abfragen kann man den Wert natürlich auch ganz normal nur ein Mal (muß nicht unbedingt über Synchronaktionen laufen). Man hat dann natülich keine ständige Überwachung, d.h. man bekommt nicht mit, wenn sich der OVR-Wert verändert.
Wenn es wichtig ist, den Wert permanent zu überwachen, müßte das auch mit einer modalen Synchronaktion funktionieren.
   
Beitrag 13.11.2009, 08:02 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.921
QUOTE (CNCler @ 12.11.2009, 22:20) *
....(muß nicht unbedingt über Synchronaktionen laufen).



Da habe ich mich leider geirrt. Lesen geht nur in Synchronaktionen.
   
Beitrag 13.11.2009, 11:52 Uhr
CNCRalli
CNCRalli
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 12.11.2009
Beiträge: 12
....wie schon befürchtet, die Variablen stehen in meinen Maschinen nicht zur Verfügung :-( !
- warum auch immer - Softwarestand, Ausführung Steuerung .... !

Bleibt mir die Frage, wie ermittele ich den aktuellen Stand des Override in einer Synchronaktion?
Wenn es geht - wie ?


--------------------
....und immer ne handvoll Späne unter den Schuhen ..... in diesem Sinne

CNCRALLI
   
Beitrag 13.11.2009, 15:11 Uhr
uli12us
uli12us
Level 8 = Community-Ehrenmitglied
********
Gruppe: Mitglied
Mitglied seit: 20.04.2002
Beiträge: 5.008
Gibts da nicht im Zusammenhang mit Gewindeschneiden die Möglichkeit den Vorschub auf 100% einzustellen, unabhängig davon, was am Poti eingestellt ist? Dazu solltest du dir am besten mal den Cycle84 genauer anschauen.
   
Beitrag 13.11.2009, 17:45 Uhr
mori4200
mori4200
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 02.06.2008
Beiträge: 527
Hallo Leute,
hab jetzt schon eine ganze menge probiert aber das beste ergebniss war bis jetzt,
dass ich die zahl "100" in R00 schreiben konnte.
So geschehen in MDA:

ID=1 DO $R00=$AC_OVR
STOPRE
CANCEL(1)

Nur kommt die Zahl "100"immer egal auf welcher Pos das Poti steht.

Mich würde wirklich interessieren wie man den POTI Wert lesen kann.

Kann uns den wiklich keiner helfen


--------------------
Mfg MORI


“Armselig der Schüler, der seinen Meister nicht übertrifft“
   
Beitrag 13.11.2009, 19:28 Uhr
CNCRalli
CNCRalli
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 12.11.2009
Beiträge: 12
QUOTE (uli12us @ 13.11.2009, 15:11) *
Gibts da nicht im Zusammenhang mit Gewindeschneiden die Möglichkeit den Vorschub auf 100% einzustellen, unabhängig davon, was am Poti eingestellt ist? Dazu solltest du dir am besten mal den Cycle84 genauer anschauen.


...schon passiert! Im Cycle84 wird zum Gewindeschneiden G331/G332 verwendet und zu dieser G-Funktion gibt es nur Poti 0 oder 100%

Danke


--------------------
....und immer ne handvoll Späne unter den Schuhen ..... in diesem Sinne

CNCRALLI
   
Beitrag 13.11.2009, 20:07 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.921
QUOTE (mori4200 @ 13.11.2009, 17:45) *
Hallo Leute,
hab jetzt schon eine ganze menge probiert aber das beste ergebniss war bis jetzt,
dass ich die zahl "100" in R00 schreiben konnte.
So geschehen in MDA:

ID=1 DO $R00=$AC_OVR
STOPRE
CANCEL(1)

Nur kommt die Zahl "100"immer egal auf welcher Pos das Poti steht.

Mich würde wirklich interessieren wie man den POTI Wert lesen kann.

Kann uns den wiklich keiner helfen


Ich habe auch noch mal ein bisschen geforscht: Mit $AC_OVR kann man tatsächlich nur den Override lesen, wir er gegebenfalls mit Synchronaktionen verändert wurde. Wenn man den nicht verändert, liest man eben immer 100%.
Die beiden anderen Variablen ($AC_PLC_OVR bzw. $AC_TOTAL_OVR) liefern aber den richtigen Wert.
Das Lesen mittels Synchronaktion geht noch etwas einfacher, nämlich mit

DO $R00=$AC_OVR

Die Synchronaktion ist dann nicht modal (weil das ID=1 fehlt). Damit bracht man den Befehl CANCEL(1) nicht mehr.
STOPRE ist notwendig, weil man sonst in der Regel versuchen würde das Ergebnis (hier in R0) zu lesen,m bevor es durch die Synchronaktion beschrieben wurde.
   
Beitrag 14.11.2009, 00:00 Uhr
mori4200
mori4200
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 02.06.2008
Beiträge: 527
Habe auch versucht das PLC Bit "db13.DBB[0] zu lesen. Dieses gibt den exaten Poti Wert zurück; allerdings im Bit binär Code.
Und plc Daten lassen sich wiederum nicht in NC VAriablen schreiben.
!?!?!?!?!


--------------------
Mfg MORI


“Armselig der Schüler, der seinen Meister nicht übertrifft“
   
Beitrag 14.11.2009, 00:17 Uhr
uli12us
uli12us
Level 8 = Community-Ehrenmitglied
********
Gruppe: Mitglied
Mitglied seit: 20.04.2002
Beiträge: 5.008
Kann man das nicht umstellen, in dem man bei den PLC einstellungen dieses db... schreibt und als Datenart anstatt binär dezimal?
   
Beitrag 14.11.2009, 02:03 Uhr
mori4200
mori4200
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 02.06.2008
Beiträge: 527
Das mußt du mir besser erklären; bin eigentlich ein FANUC ler


--------------------
Mfg MORI


“Armselig der Schüler, der seinen Meister nicht übertrifft“
   
Beitrag 14.11.2009, 11:22 Uhr
uli12us
uli12us
Level 8 = Community-Ehrenmitglied
********
Gruppe: Mitglied
Mitglied seit: 20.04.2002
Beiträge: 5.008
Bei mir ists nur das MB20 das für den Wkzgwechsel zuständig ist. Das ist voreingestellt auf binär, da tippt man dann erstmal 1000 Nullen und dann nen Einser wenn man das zurücksetzen will. Wenn man in die Spalte wo eben die Datenart nenn ichs mal eingestellt wird statt nem B für Binär ein D für Dezimal eintippt, kann man normale Zahlen verwenden.

Ich geh jetzt einfach mal davon aus, dass das mit deinem DB13 ebenso funktioniert. Intern wird das sowieso alles in Binär gewandelt, nur nach aussen hin lässts sich bequemer handhaben. Kaputtmachen kann man damit erstmal nichts, solange man da keine anderen Werte eingibt.
   
Beitrag 14.11.2009, 13:16 Uhr
Drehpapst
Drehpapst
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 28.04.2005
Beiträge: 650
Es gibt auch noch Maschinendaten, wo angegeben wird wie die Stellung des Potentiometers letztendlich interpretiert wird. Irgendwo um die 12000 sollten die sein.
Wenn du sicherstellen willst, dass ein Programmteil mit 100% gefahren wird könntest du auch diese Maschinendaten, es gibt für jede Stellung des Potios eines, über ein Programm ändern. Und danach wieder zurücksetzen auf "Normalwerte". Am besten mit 2 Unterprogrammen die vor und nach dem Programmteil der mit 100% gefahren werden soll, aufgerufen werden. Dann könnte man für 0% = 0 eingeben und für alle anderen Stellungen 100%. Dann wäre es egal wo das Poti steht. Die Maschinendaten sind so weit ich weiss sofort wirksam, also möglich sollte dieser Weg sein. Kommt halt drauf an was du damit bezwecken willst, ob der Ansatz für dich taugt.


--------------------
Gruß,

Drehpapst


Willen braucht man. Und Zigaretten.
Wer Visionen hat, sollte zum Arzt gehen.
Helmut Schmidt
   
Beitrag 14.11.2009, 14:22 Uhr
mori4200
mori4200
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 02.06.2008
Beiträge: 527
Ich möchte eigentlich "nur" die Stellung des Poti mit "Write" dokumentieren


--------------------
Mfg MORI


“Armselig der Schüler, der seinen Meister nicht übertrifft“
   
Beitrag 19.11.2009, 14:31 Uhr
CNCRalli
CNCRalli
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 12.11.2009
Beiträge: 12
'tja Kollegen der Zunft,

so richtig bin ich dann doch noch nicht weitergekommen.

In dem DB21.DBB4 (NST Vorschubkorrektur) kann ich die Position des Override ansehen aber wie schon vorher erwähnt
lässt sich die PLC direkt nicht Abfragen. Das Signal muß auf einen speziellen Baustein geschrieben werden um mit $A_DBB
darauf zugreifen zu können.
Den Override im Maschinendatum komplett hoch setzten (100%) und nachher zurück halte ich für sehr riskant.
Wenn ich eine Störung habe .....!

Noch mal zur Aufgabe:

Ich möchte sicherstellen, dass mein Programm nur mit 100% Override läuft. Wobei ich es ausreichend finde, dass eine einmalige
Abfrage am Anfang genügt.

Vielleicht hat noch einer einen anderen Ansatz?

thumbs-up.gif danke.gif


--------------------
....und immer ne handvoll Späne unter den Schuhen ..... in diesem Sinne

CNCRALLI
   
Beitrag 19.11.2009, 17:08 Uhr
nixalsverdruss
nixalsverdruss
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
QUOTE (CNCRalli @ 19.11.2009, 15:31) *
Noch mal zur Aufgabe:

Ich möchte sicherstellen, dass mein Programm nur mit 100% Override läuft. Wobei ich es ausreichend finde, dass eine einmalige
Abfrage am Anfang genügt.

Vielleicht hat noch einer einen anderen Ansatz?

thumbs-up.gif danke.gif


es gibt die möglichkeit PLC eingänge in der NC zu lesen
über diesen weg ist es möglich die stellung des Poti abzufragen
dazu muss auch nicht die PLC geängert werden es ist aber von vorteil wenn man ins plc Programm schauen kann
das EB n+3 enthält in den bit s 0-4 das Poti allerdings im grey code

beim Standart PLC Program wärs das EB3 ist es das nicht muss man suchen oder im OB100 nachschauen
wenn dann der herstelleer der Maschine keine EB direkt liest kann man das nutzen .

nach setzen der entsprechenden MP's kann man dann mit $A_PBB_IN das Byte lesen mit B_AND bits 5-7 ausblenden
dann von gray nach dual
und fertig


--------------------
There are only 10 types of people in the world: Those who understand binary, and those who don't
Wir haben einen exponentiellen Zuwachs an Doofen Pack im Forum
   
2 Besucher lesen dieses Thema (Gäste: 2)
0 Mitglieder: