Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Plc Eingang abfragen

Beitrag 23.03.2017, 01:57 Uhr
Michl191
Michl191
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 23.03.2017
Beiträge: 14
Hallo,
Ich arbeite an einem Drehautomat mit 840d Steuerung
und möchte den PLC Eingang 39.7 im Teileprogramm
abfragen ob 1 oder 0.
Mit der einfachen Schreibweise hab ich leider kein Erfolg.
If $A_IN[39.7]==1 goto Label
   
Beitrag 23.03.2017, 10:02 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
QUOTE (Michl191 @ 23.03.2017, 01:57 Uhr) *
Hallo,
Ich arbeite an einem Drehautomat mit 840d Steuerung
und möchte den PLC Eingang 39.7 im Teileprogramm
abfragen ob 1 oder 0.
Mit der einfachen Schreibweise hab ich leider kein Erfolg.
If $A_IN[39.7]==1 goto Label

hi

WHEN DO sollte hier die Lösung darstellen


--------------------
MfG
Andy

-------------------------------------------------------------------------------------------------------------------------


4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)

PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx

Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
   
Beitrag 23.03.2017, 16:30 Uhr
Michl191
Michl191
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 23.03.2017
Beiträge: 14
Wie ist dan da die Schreibweise???
   
Beitrag 23.03.2017, 17:31 Uhr
alfadice
alfadice
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 11.06.2009
Beiträge: 4
QUOTE (Michl191 @ 23.03.2017, 16:30 Uhr) *
Wie ist dan da die Schreibweise???

Hi
WHEN $A_IN[39.7]==1 DO GOTO LABEL
   
Beitrag 23.03.2017, 21:28 Uhr
Roman12
Roman12
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 04.01.2017
Beiträge: 50
kommt der befehl when und do nicht nur in synchronaktionen vor ??
   
Beitrag 23.03.2017, 21:56 Uhr
nixalsverdruss
nixalsverdruss
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
QUOTE (Michl191 @ 23.03.2017, 02:57 Uhr) *
If $A_IN[39.7]==1 goto Label


weder mit WHEN DO oder sonst was wird das funktionieren.
PLC Eingänge können so nicht abgefragt werden.

$A_IN[X] werden die Schnellen digitalen Eingänge der NCU abgefragt . keine PLC Peripherie.


um PLC Peripherie abzufragen gibt es $A_PBB_IN und es können nur ganze Byte gelesen werden einzelne Bit muss man mit B_AND aus werten.
zu $A_PBB_IN gehören die Maschinendaten MD10394 $MN_PLCIO_NUM_BYTES_IN und MD10395
$MN_PLCIO_LOGIC_ADDRESS_IN
   
Beitrag 24.03.2017, 00:24 Uhr
Michl191
Michl191
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 23.03.2017
Beiträge: 14
stimmt! Mit when do hatte ich leider keinen Erfolg.
Geht es nicht einfacher???

Es ist eine gildemeister und es gibt eine Hersteller
Bedingte M- Funktion. Da geht's!
Problem dabei ist aber das diese M-Funktion
Bei Eingang 1 das Programm durchlaufen lässt
Und bei 0 einen Lesehalt macht bis der Eingang auf 1 geht!
Ich möchte jedoch einen sprungbefehl ausüben.

M80=397
   
Beitrag 24.03.2017, 06:43 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (Michl191 @ 24.03.2017, 01:24 Uhr) *
stimmt! Mit when do hatte ich leider keinen Erfolg.
Geht es nicht einfacher???


Es geht so nicht nixalsverdruss hat das gut erklärt warum
Einfache Weg, PLC muss dir den Signal durchschleifen entweder auf nen schnellen Eingang $A_IN oder auf einen dual Port RAM DBB.

MD10394
MD10395

müssen richtig konfiguriert sein und mit der PLC übereinstimmen.
So oder so kommst um eine PLC Anpassung nicht rum, wenn das Signal dir, nicht jetzt schon, zu Verfügung steht


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 25.03.2017, 07:35 Uhr
Michl191
Michl191
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 23.03.2017
Beiträge: 14
Wie macht es dan diese M-Funktion???

Werds am Montag mal versuchen.
Danke schonmal.
   
Beitrag 25.03.2017, 08:07 Uhr
inaktiv_17
inaktiv_17
Level 3 = Community-Techniker
***
Gruppe: Banned
Mitglied seit: 05.02.2017
Beiträge: 179
QUOTE (Michl191 @ 25.03.2017, 07:35 Uhr) *
Wie macht es dan diese M-Funktion???

Werds am Montag mal versuchen.
Danke schonmal.

Guten Morgen,

genauso, wie nixalsverdruss es beschrieben hat.
Nur das in der entsprechenden Datei im DEF.DIR via
DEFINE <NAME> AS <Programmcode>
eingetragen wird.

DEFINE M123 AS "Unterprogramm-Name"

Das bedeutet das M1233 den Codeteil als Unterprogramm oder Zyklus welches diese Abfragefunktion enthält.
Ebenso ist es möglich zB die M-Funktionen M5 und M9 ( Spindelstop und Kühlmittel aus ) zu einem neuen M- Befehl zusammen zufassen.
DEFINE M95 AS M5 M9

Natürlich muss die Funktionsauslösung deines M- Befehls den kompletten Programmcode enthalten. Sprünge in weitere Unterprogramme sind zu vermeiden, wenn dieses Unterprogramm nicht immer verwendet wird, und das daraus aufgerufene Unterprogramm nicht immer in der NC geladen ist. Wichtig dabei ist auch, dass der mit DEFINE definierte neue Befehl nicht schon verwendet wird.

Aber Vorsicht ! Erst das Unterprogramm ( welches im Unterprogrammordner liegen kann / muss, oder sich im Ordner CUS.DIR befindet ) testen, bevor du das via neuer M - Zuweisung ausführst !
Weiter Hilfe dazu findest du in der Programmieranleitung Arbeitsvorbereitung im Kapitel 2.18.

Schönes Wochenende
R.HEIM
   
Beitrag 25.03.2017, 08:15 Uhr
Michl191
Michl191
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 23.03.2017
Beiträge: 14
Super, Danke
Werd mich nächste Woche nochmal melden.
   
Beitrag 25.03.2017, 08:20 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (Michl191 @ 25.03.2017, 08:35 Uhr) *
Wie macht es dan diese M-Funktion???

Werds am Montag mal versuchen.
Danke schonmal.


Wie du ja selbst sagts, die M Funktion löst ein Einlesehalt aus bis der Eingang auf 1 ist, solang passiert nichts.
M Funktion stoßt die PLC an etwas zu tun in eben diesem Baustein für M80 ist ein Einlesehalt programmiert.
Wie gesagt PLC anpassen, 39.7 auf einen schnellen Eingang durchschleifen lassen und fertig. Sollte kein großer Akt sein.

Andere Variante wäre ausführen einer COM Datei

CODE
Mit dem Befehl RNP (Read NC PLC) können NC- oder PLC-Variable oder Maschinendaten
gelesen werden.

Mit dem Befehl WNP (Write NC PLC) können NC- oder PLC-Variable oder Maschinendaten
geschrieben werden.


Sprich erst den DB39.7 mit RNP in ne Variable lesen, mit WNP beispiel ein R Parameter beschreiben und danach zurück ins Programm und auf den R Parameter reagieren.
Ist aber nicht sonderlich konventionell tounge.gif und sicher einfacher über PLC zu lösen wink.gif


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 25.03.2017, 09:44 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
Hi

habe ich das richtig verstanden ?
Wenn du in dein Programm
M80=397
schreibst, wartet die Maschine, bis der PLC Eingang auf 1 wechselt. OK
Aber was ist nun mit dem Sprungbefehl ?
Er soll also wenn das BIT von 0 auf 1 springt den Code in "LABEL" ausführen ?
Oder was ist das Ziel dieser Übung ?
Soll das Programm ohne die Verzögerung von M80 weiterlaufen solange das BIT nicht auf 1 steht, und nur im Falle, dass an der Programmstelle das BIT schon auf 1 ist diesen Sprung auslösen ?


--------------------
MfG
Andy

-------------------------------------------------------------------------------------------------------------------------


4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)

PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx

Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
   
Beitrag 25.03.2017, 13:26 Uhr
Michl191
Michl191
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 23.03.2017
Beiträge: 14
Ich möchte vom Prinzip her wenn der Bit auf 0 steht unterprogramm 1 aufrufen und wenn der Eingang 1 hat unterprogramm 2 bzw. wenn 0 dann einfach durchlaufen und bei 1 nen Sprung machen.
   
Beitrag 25.03.2017, 14:37 Uhr
Michl191
Michl191
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 23.03.2017
Beiträge: 14
Ich möchte vom Prinzip her wenn der Bit auf 0 steht unterprogramm 1 aufrufen und wenn der Eingang 1 hat unterprogramm 2 bzw. wenn 0 dann einfach durchlaufen und bei 1 nen Sprung machen.
   
Beitrag 27.03.2017, 20:08 Uhr
Michl191
Michl191
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 23.03.2017
Beiträge: 14
So, schönen guten Abend.
Habs heute versucht aber leider keinen Erfolg gehabt.
Immer wenn ich in den Maschinen Daten
PLCIO_LOGIC_ADDRESS_IN = 39
PLCIO_NUM_BYTES_IN = 1
Eingebe, bekomme ich ne Fehler Meldung
4252 Plcio Lesefehler.

Was mach ich falsch???
Oder ist es irgendwie noch gesperrt???
   
Beitrag 27.03.2017, 22:02 Uhr
nixalsverdruss
nixalsverdruss
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
QUOTE (Michl191 @ 27.03.2017, 21:08 Uhr) *
Was mach ich falsch???
Oder ist es irgendwie noch gesperrt???


Die Maschinendaten MD10394 $MN_PLCIO_NUM_BYTES_IN und MD10395
$MN_PLCIO_LOGIC_ADDRESS_IN müssen konsistent zur PLC-seitigen Projektierung
sein.

gehen wir mal davon aus das du kein EB 39 hast.
wie kommst du überhaupt auf Eingang 39.7 ?
   
Beitrag 28.03.2017, 07:58 Uhr
Michl191
Michl191
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 23.03.2017
Beiträge: 14
Eingang 39.7 ist laut meinem Elektriker ein freier Eingang und ich hab mir einen Schalter einbauen lassen um den Eingang zu betätigen.

Im PLC Status funktioniert es!
   
Beitrag 28.03.2017, 08:02 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (Michl191 @ 28.03.2017, 08:58 Uhr) *
Eingang 39.7 ist laut meinem Elektriker ein freier Eingang und ich hab mir einen Schalter einbauen lassen um den Eingang zu betätigen.

Im PLC Status funktioniert es!


PLC Anpassen, den Eingang auf einen schnellen Eingang legen. Fertig wink.gif


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 28.03.2017, 08:17 Uhr
Michl191
Michl191
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 23.03.2017
Beiträge: 14
Ich weiß leider nicht wie ich auf einen schnellen Eingang komme.
   
Beitrag 28.03.2017, 08:20 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (Michl191 @ 28.03.2017, 09:17 Uhr) *
Ich weiß leider nicht wie ich auf einen schnellen Eingang komme.


Such dich nen Freelancer PLC/SPS Programmierer oder beim Maschinenhersteller anfragen.


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 28.03.2017, 08:29 Uhr
Michl191
Michl191
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 23.03.2017
Beiträge: 14
Versuch ich schon seit ein paar Wochen, aber die bekommen des irgendwie nicht auf die Kette!
Bin auch schon auf einen Siemens Mitarbeiter zu gegangen aber kam bisher auch noch keine Antwort!
   
Beitrag 28.03.2017, 10:46 Uhr
nixalsverdruss
nixalsverdruss
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
QUOTE (Michl191 @ 28.03.2017, 08:58 Uhr) *
Eingang 39.7 ist laut meinem Elektriker ein freier Eingang und ich hab mir einen Schalter einbauen lassen um den Eingang zu betätigen.

Im PLC Status funktioniert es!


kannst du auch das EB40 in der PLC DIganose sehen ?
ist in MD10500 etwas eingetragen ?

am einfachsten du stellst ein NC Archiv ein dann kann ich mir die MD ansehen

Die Digitalen NC Eingänge müssen nicht unbedingt durch die PLC verteilt werden mann kann die auch an der NCU anklemmen.
Das sollte aber einer anklemmen der weiß was er da macht.
vorher sollte auch geklärt werden ob der Maschinenhersteller einen nicht vorhanden / genutzten NC Eingang als Interrupt für einen ASUP nutzt.
   
Beitrag 28.03.2017, 13:44 Uhr
Michl191
Michl191
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 23.03.2017
Beiträge: 14
EB40 kann ich einsehen steht "00000000"

MD 10500 wird nicht aufgeführt.

Wie stell ich ein nc Archiv ein??
   
Beitrag 28.03.2017, 17:15 Uhr
nixalsverdruss
nixalsverdruss
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
QUOTE (Michl191 @ 28.03.2017, 14:44 Uhr) *
EB40 kann ich einsehen steht "00000000"

MD 10500 wird nicht aufgeführt.

Wie stell ich ein nc Archiv ein??


äh wie jetzt ?
du erstellst an der Maschine ein Archiv ( Datensicherung) und hängst das hier an eine Betrag an .
Die Datensicherung am besten mit den von dir geänderten werten und dem Fehler , und nicht nur NC sicher alles mit. dann kann man vielleicht in den Log Dateien was sehen
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: