CODESYS - das IEC 61131-3 Programmiersystem

Willkommen im offiziellen CODESYS - Forum von 3S-Smart Software Solutions | A member of the CODESYS Group
Deutsche Version English version russian version 
Aktuelle Zeit: Di Okt 16, 2018 12:20 pm

Alle Zeiten sind UTC




Ein neues Thema erstellen  Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: ASCII Strings über GPIO COM-Port
BeitragVerfasst: Do Apr 12, 2018 6:34 am 
Offline

Registriert: Mo Mai 29, 2006 11:20 am
Beiträge: 13
Hallo allerseits,

ich steige gerade in die Programmierung des Raspberry Pi in Codesys ein.

Die runtime ist auf dem Pi installiert. Demoprogramme von Codesys kann ich ausführen.

Ich möchte gerne eine Platine einbinden, die direkt als HAt aufgesetzt wird.
http://pthat.com/

Noch habe ich die Platine nicht.


Der HAT wird laut Hersteller über ASCII-Strings angesprochen.
http://pthat.com/index.php/command-set/

Die Befehle sehen dann beispielsweise so aus:
I00CX125000.000429496729511110001001*

Was ich bereits gemacht habe:
1.
Eintrag für die Serielle Schnittstelle im SPS Config file:
/etc/CODESYSControl.cfg

[SysCom]
Linux.Devicefile=/dev/ttyAMA

2.
die Serielle Schnittstelle wurde in der Raspberry-Pi Config für die Login-Shell deaktiviert aber als Hardware aktiviert.


Ich verstehe nur noch nicht, was ich nun in meinem Programm einbinden/definieren muss, um die Schnittstellenkonfiguration und die Steuerstrings zu übertragen.
Das sollen die Schnittstellenpaprameter sein.
Standard Speed High Speed
BaudRate = 115200
Parity = None
StopBits = One
DataBits = 8
Handshake = None

Wie/wo übergebe ich die?

Wie steuere ich, wann ein String gesendet wird?

Wie kann ich die Antwortstrings auswerten?


Wie spreche ich zudem die der GPIO-Pins an, bzw. kann sie als Eingänge lesen?
Ich verstehe die Adressierung noch nicht so ganz.


Es wäre ganz toll, hier Unterstützung zu bekommen.

Vielen lieben Dank


Gruss

McNugget


Nach oben
   
BeitragVerfasst: Do Apr 12, 2018 8:42 am 
Offline
Site Admin

Registriert: Mo Sep 05, 2005 8:42 am
Beiträge: 2896
Hallo,

seit 3.5SP11 musst solltest du das in /etc/CODESYSControl_User.cfg
eintragen.
also in CODESYSControl.cfg entfernen die Sektion und in CODESYSControl_User.cfg den vorhanden Eintrag anpassen.

[SysCom]
Linux.Devicefile=/dev/ttyAMA

zu dem seriellen lesen es gibt ein Store Beispiel:
https://store.codesys.com/serial-com.html
Am besten direkt über das CODESYS Einkaufwagen Symbol installieren und dann enthält diese Applikation zwei Arten wie man es machen kann
1. CAASerialCom
2.Syscom
je nach Gusto eines davon adaptieren an deine Applikation

Grüße
Edwin


Dateianhänge:
serial.jpg
serial.jpg [ 51.63 KiB | 596 mal betrachtet ]
Nach oben
   
BeitragVerfasst: Do Apr 12, 2018 8:44 am 
Offline
Site Admin

Registriert: Mo Sep 05, 2005 8:42 am
Beiträge: 2896
dann noch GPIO's definieren und mappen hier:


Dateianhänge:
GPIOMappen.jpg
GPIOMappen.jpg [ 123.3 KiB | 595 mal betrachtet ]
GPIOdefinieren.jpg
GPIOdefinieren.jpg [ 231.4 KiB | 595 mal betrachtet ]
Nach oben
   
BeitragVerfasst: Do Apr 12, 2018 1:07 pm 
Offline

Registriert: Mo Mai 29, 2006 11:20 am
Beiträge: 13
Hallo Edwin.

Vielen Dank für die schnelle und gute Hilfe, die Screenshots helfen mir sehr. ;-)

Kannst du mir sagen, warum das alles beim Ausführen so aussieht?

Dateianhang:
codesys.JPG
codesys.JPG [ 118.72 KiB | 586 mal betrachtet ]



Ich habe Deklaration und Anweisungsteil umkopiert in eine Funktion mit Boolscher Ausgabe.
Diese rufe ich auch im PLC_PRG auf.

Aber irgendwie scheint es keine Aktualwerte, sondern nur Fragezeichen zu geben... :roll:

Vielen Dank auf jeden Fall schon mal bis hier.


Gruss

McNugget


Nach oben
   
BeitragVerfasst: Fr Apr 20, 2018 6:37 am 
Offline

Registriert: Mo Mai 29, 2006 11:20 am
Beiträge: 13
Mittlerweile arbeite ich direkt auf der Hardware.


An die GPIO-Pins ist ein Pegelwandler auf USB angeschlossen.

Mit einem Terminalprogramm konnte ich bereits strings senden. Also sollte von der Hardwareseite alles stimmen.

Was mit neu war, war die Info, dass sich die Portadressierung im Pi3 von den anderen Versionen unterscheidet.

In die /etc/CODESYSControl_User.cfg

ist jetzt folgendes eingestragen:

[sysCom]
Linux.Devicefile=dev/ttyS
[CmpBlkDrvCom]
Com.0.Name=MyCom
Com.0.Baudrate=115200
Com.0.Port=3
Com.0.EnableAutoAdressing=1



Wie und wo kann ich die Com-Porteinstellungen definieren?

Wie sage ich in Codesys, dass sich die Ausgabe auf den ComPort MyCom bezieht?


Gruss

McNugget


Nach oben
   
BeitragVerfasst: Fr Apr 20, 2018 6:44 am 
Offline
Site Admin

Registriert: Mo Sep 05, 2005 8:42 am
Beiträge: 2896
Hallo,

du brauchst nur:
[sysCom]
Linux.Devicefile=dev/ttyS

das andere bitte nicht aktivieren.
Baudrate usw wir ja alles im IEC Projekt angegeben.

Grüße
Edwin


Dateianhänge:
SysComExample.jpg
SysComExample.jpg [ 329.81 KiB | 540 mal betrachtet ]
Nach oben
   
BeitragVerfasst: Fr Apr 20, 2018 9:19 am 
Offline

Registriert: Mo Mai 29, 2006 11:20 am
Beiträge: 13
Hallo Edwin.

Vielen Dank. Jetzt läuft die Kommunikation.

Ich habe das SysComLibExample einfach mal in mein Projekt einkopiert. Grundsätzlich läuft es.

Allerdings bekomme ich es nicht hin, dass ich einen String nur einmal ereignisgesteuert über die COM-Schnittstelle übergebe.
Der String wird immer endlos wiederholt.

Habe es jetzt versucht, die "Str" Variable und "bWriteCom" global zu definieren und "bWriteCom" per R_trig zu triggern. da kommt der String immer noch etwa 50 Mal.

Wie kann ich es hinbekommen, meinen String nur einmal ereignisgesteuert auszugeben?

Vielen Dank schon mal.

Gruß

McNugget


Nach oben
   
BeitragVerfasst: Di Apr 24, 2018 6:42 am 
Offline

Registriert: Mo Mai 29, 2006 11:20 am
Beiträge: 13
Kann mir irgendwer auf die Sprünge helfen?

Vielen Dank

gruss

McNugget


Nach oben
   
BeitragVerfasst: Di Mai 08, 2018 12:10 pm 
Offline

Registriert: Mo Mai 29, 2006 11:20 am
Beiträge: 13
Leider habe ich das Problem immer noch. Kann mir jemand einen Wink mit dem Zaunpfahl geben?

Wie kann ich SCII-Codes ereignisgesteuert ausgeben?

Vielen Dank schon mal für die Hilfe.

Gruss

McNugget


Nach oben
   
BeitragVerfasst: Mo Jul 16, 2018 11:15 am 
Offline

Registriert: Mo Mai 29, 2006 11:20 am
Beiträge: 13
Könnte mir jemand helfen?

Vielen Dank

McNugget


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 10 Beiträge ] 

Alle Zeiten sind UTC


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de