Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 8 von 8

Thema: B&R X20 in Ansi C programmieren

  1. #1
    Registriert seit
    11.09.2015
    Ort
    Oberösterreich
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Miteinander

    Kurz zu meiner Person.

    Bin 29 Jahre alt, habe Elektroinstallationstechniker gelernt und bin jetzt in der Prüfmittelentwicklung bei einer Automatisierungsfirma mit dem Orangen Logo tätig
    Habe aber im Beruf nur mit Hardware zu tun. Deshalb ein Laie auf dem Gebiet der SPS programmierung. Hobbys sind Amateurfunk eigentlich alles was so mit Technik zu tun hat.

    Vor meinen Tisch liegt eine CP3586 B&R CPU mit DI und DO Modulen die schon konfiguriert sind. Verbindung zum Automationstudio funktioniert, Variablen sind gesetzt usw.

    Eingänge sind mit In1-In36
    Ausgänge mit Out1-Out36 gesetzt


    #include <bur/plctypes.h>

    #ifdef _DEFAULT_INCLUDES
    #include <AsDefault.h>
    #endif

    void _CYCLIC ProgramCyclic(void)
    {
    Out1 = 1; //Testkommentar
    Out2 = 1;

    }

    Damit kann ich zumindest die Ausgänge einschalten soviel habe ich schon kapiert

    Jetzt zu meinen Fragen. Wie weiß Automation Studio welcher Befehl was machen soll. Sind die generell in Ansi C gleich (nur einfache Standardbefehle) Oder muss ich den AS irgendwo sagen was welcher Befehl tun soll.
    Habs jetzt mal probiert wie beim Arduino ein Blinklicht zu machen oder mit einen Eingang auf 1 einen Ausgang auf 1 zu schalten. Das hat mal nicht funktioniert.

    Kann mir jemand einen Link oder Lektüre zum Nachschauen für C empfehlen, wo ich dann die Erfahrungen auch im Automation Studio verwenden kann. Oder sind die Befehlsstrukturen überall anders?

    Danke schon mal im voraus.

    mfg francy
    Zitieren Zitieren B&R X20 in Ansi C programmieren  

  2. #2
    Registriert seit
    04.01.2015
    Beiträge
    63
    Danke
    0
    Erhielt 18 Danke für 17 Beiträge

    Standard

    In der Hilfe unter Prigramm/Libary findest du viele Beispiele auch in ANSI C

    Wenn du mit dem Programmieren erst anfängst ist Structur Text sicher die bessere Wahl, da dieser auch in anderen Sprachen unterstützt wird

    Blinklist in ANSI C
    Kannst dir auch die TON Funktion unter
    _LOCAL UDINT Counter,CounterMax,BlinkON;

    _INIT taskinit(void)
    {
    Counter = 0;
    CounterMax = 100;
    BllinkON = 50;
    }
    _CYCLIC taskcyc(void)
    {
    Counter++;
    if(Counter > CounterMax) Counter = 0;
    if(Counter < BlinkON){
    OUT2 = 1;
    }
    else{
    OUT2 = 0;
    }
    }
    TON Beispielprogramm in der Hilfe/Librarie/standard
    #include <bur/plc.h> /* macros for B&R PLC programming */
    #include <bur/plctypes.h>

    #include <standard.h> /* prototypes for STANDARD-Library */
    /* === variables declaration === */
    _LOCAL TON_typ TON_01; /* instance variable of TON */
    _LOCAL BOOL input; /* input */
    _LOCAL TIME presetTime; /* Time for switch on delay */
    _LOCAL BOOL output; /* output is input with an on switch delay
    of presetTime */
    _LOCAL TIME elapsedTime; /* elapsed time since positive edge of input */
    /* === init part of task === */
    _INIT void init(void)
    {
    /* set delay time */
    presetTime = 1200; /* is 1.2 seconds, since TIME is
    measured in milliseconds*/

    }
    /* === cyclic part of task === */
    _CYCLIC void cyclic(void)
    {
    /* set input parameters */
    TON_01.IN = input;
    TON_01.PT = presetTime;
    /* call TON with address of instance variable */
    TON(&TON_01);
    /* read output parameters */
    output = TON_01.Q;
    elapsedTime = TON_01.ET;
    }

  3. #3
    OE5AMP ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.09.2015
    Ort
    Oberösterreich
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo

    Danke für die schnelle Hilfe.
    Da habe ich noch viel zu lernen. Ich denke ich werde mit ST anfangen. Sieht irgendwie logischer aus für mich. Und die B&R Hilfe Datei verwenden.
    Am Montag habe ich in der Mittagspause einen Termin mit nen Programmierer. Der wollte mir das schon per Whats App erklären aber das wird nix. Da gehts persönlich schon einfacher.


    Ich werde euch aufjedenfall auf den Laufenden halten. Morgen habe ich ja genug Zeit um was auszuprobieren. Was ich schon mal herausgefunden habe ist, das ich mit rauskopieren und schauen obs geht nicht weit komme. Muss versuchen das ich mal die Basics verstehe, wie Bibliotheken ins Programm verknpüft werden und der Programmierablauf, was die ganzen Zeichen alles bedeuten und machen usw.

  4. #4
    Registriert seit
    01.06.2010
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo !

    Ich hab vor 25 Jahren selbst bei B&R entwickelt, mich dann selbständig gemacht und meine Firma baut nun seit 19 Jahren Schaltschränke und schreibt Applikationen mit B&R-SPS-en.
    Da ganz neu einzusteigen ist nicht so easy, weil es eine Menge Fußangeln gibt, daher mein Tipp: Besorg dir von einem Kollegen der Akademie im Haus die Kursunterlagen für das Einsteigerseminar. Da hast du gleich mal an ein paar Wochenenden die Basics intus und es ist nicht so frustrierend, weil die Beispiele (anders als die in der Hilfe zum AS...) wirklich alle funktionieren. und der Vorschlag erst einmal mit ST oder AutomationBasic zu beginnen ist sicher ein guter Rat von roger34.

    lg Rainer aus Graz
    (ehemals OE6TRG, als ich noch qrv war)

  5. #5
    OE5AMP ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.09.2015
    Ort
    Oberösterreich
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Servus

    Danke für deine Antwort. Oh ein Funkamateur und ehem. B&R Arbeiter. Sind ja auch einige Funkamateure bei B&R

    Ja die Unterlagen habe ich mir schon runtergeladen und bin da schon am Herumprobieren in ST. Nebenbei mache ich mich aber noch in C schlau. C ist doch die Standardsprache in der Firma. Vlt bringt mir mal was beruflich.

    Mal sehen vielleicht haben die in der Akademie mal nen Platz frei für mich um so nen Kurs zu belegen.





    #include<bur/plctypes.h>



    #ifdef_DEFAULT_INCLUDES

    #include<AsDefault.h>

    #endif



    void
    _CYCLICProgramCyclic(void)

    {
    if



    (In1
    ==1)

    Out1=1;
    Out2 = 1;


    else

    Out1=0;
    Out2 = 0;




    Kann mir jemand sagen wieso ich da

    expected expression before 'else' bekomme, wenn ich Out2 auch mit einbeziehe.

    Kann ich das in einer Befehlsgruppe machen oder muss ich pro Ausgang wieder neu mit if (In1 == 1) Out2 = 1; usw. weitermachen?



    73 de OE5AMP

  6. #6
    Registriert seit
    10.01.2014
    Beiträge
    163
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    {if



    (In1
    ==1){

    Out1=1;
    Out2 = 1;
    }


    else {

    Out1=0;
    Out2 = 0;
    }

    Wenn nur ein Befehl nach If() kommt kannst du direkt mit else weitermachen, dann kannst du auch bei Out1=1 das ";" weglassen.
    z.B.
    if(In1==1)Out1=1 else Out1=0;

    Sobald die Anweisung nach deinem If aber ein ";" hat und/oder aus mehreren Befehlen besteht musst du "{" und "}" setzen.


    Geändert von knuppel (17.09.2015 um 12:20 Uhr)

  7. #7
    Registriert seit
    13.09.2010
    Beiträge
    113
    Danke
    0
    Erhielt 18 Danke für 18 Beiträge

    Standard

    Wenn es um die Sprache C an sich geht, macht es vielleicht auch Sinn, zunächst auf einem PC und nicht auf einer Steuerung zu lernen.
    Man kann C natürlich so nutzen wie Automation Basic oder Structured Text aber dafür wurde C sicher nicht entwickelt.

  8. #8
    OE5AMP ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.09.2015
    Ort
    Oberösterreich
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Danke für eure Antworten.

    Also mittlerweile traue ich mir fast zu z.b. eine einfache Jalousiesteuerung für ein Haus in C zu programmieren. (Einfache Funktionsblöcke in C verwenden) Wo ich Probleme habe sind die Leerzeichen.
    Da vergess ich meistens was. Aber der Compiler sagt ja eh wenn was nicht passt.

    Bei uns in der Firma intern wird sehr viel in C Programmiert. Steuerungen sowie auch PC Software. Mit dem Eigenstudium erhoffe ich mir mal Chancen auf ne andere Stelle in der Firma. Da schadet es sicher nicht wenn man die Grundlegenden Funktionen in C kapiert und kleinere Sachen schon programmieren kann.

    mfg francy

Ähnliche Themen

  1. Beschriftung B&R X20 Scheibe
    Von gaiskasimir im Forum Sonstige Steuerungen
    Antworten: 5
    Letzter Beitrag: 14.08.2014, 08:09
  2. B&R X20 Compact downoad
    Von Aussie im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 23.03.2010, 10:16
  3. B&R X20 Serielles Modul X20CS1020
    Von Anaconda55 im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 22.07.2009, 13:30
  4. B&R-X20 X2X IO-Aktualisierung
    Von Franschitz im Forum Sonstige Steuerungen
    Antworten: 5
    Letzter Beitrag: 07.10.2008, 23:56
  5. B&R ANSI C FUB-Aufruf
    Von RWY im Forum Sonstige Steuerungen
    Antworten: 5
    Letzter Beitrag: 29.08.2008, 11:36

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •