CODESYS auf dem Raspberry PI -jetzt verfügbar

Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
am besten du öffnest einfach das Projekt aus folgendem Link, dabei werden die die fehlenden Libs nachinstalliert.... (klar das ist ein Workaround für die Tatsache das mit aktuellen CODESYS Versionen keine alten Library Stände mitinstalliert werden

http://forum.codesys.com/viewtopic.php?f=21&t=5768

das wird zu 3.5SP5 behoben (Juli Release) - Download fehlender Libs über CODESYS Entwicklungsumgebung möglich)

Grüße
 
Es gibt ein Update mit folgenden Neuerungen:
CODESYS Control for Raspberry Pi SL V2.0.1.0
Image basiert auf
Raspbian Debian Wheezy
Version:September 2014
Release date: 2014-09-09

Was ist neu?
- OneWire wird nun unterstützt - Beispielprojekt: "c:\Users\<dein Username>\CODESYS Control for Raspberry PI\2.0.1.0\Onewire.project"
- zwei I2C Master möglich (B/B+ bzw Model A)
- SPI Geschwindigkeit konfigurierbar
- GPIO's A/B und B+ Model
- Runtime Version 3.5.5.20

Achtung:
Nach Installation des StorePackages bitte auch nicht vergessen bei eigenen bestehenden Projekten "Gerät aktualisieren" auf dem Raspberry Pi im Geräte-
baum auszuführen!

Noch was: Hier die Anleitung wie man die 1Wire Sensoren anschließt um z.B Temperatur am Heizkessel / Aussen Temp usw zu messen:

http://forum.codesys.com/viewtopic.php?f=21&t=5910#p11038


Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

so:
1. aus dem Link zuerst die Bibliothek und Gerätebeschrebung installieren ( für den MCP 23017: http://forum.codesys.com/viewtopic.php?f=23&t=5872&p=10868#p11014 )
2. dann in deinem Projekt im Gerätebaum per rechtsclick auf i2c device den I2C Master hinzufügen
3. auf den i2c Master clicken und den MCP23017 hinzufügen


wenn man dann online geht wird der FB MCP23017 aufgerufen und man kann auf dessen IN/Outs zugreifen:

IN_A, IN_B sind die Eingangs Bytes
OUT_A,OUT_B sind die Ausgangs Bytes

so sprichst du dann die Ein/Ausgänge des MCP23017 in deinem Projekt an

MCP23017.IN_A:=16#FF;//alle Augänge IN_A setzen
MCP23017.IN_B;
MCP23017.IO_B := 16#FF;
MCP23017.IO_A := 16#00;
MCP23017.OUT_A := MCP23017.IN_B; // hier z.B Eingänge auf die Ausgänge schreiben
MCP23017.STATE;

Grüße
 
Zuletzt bearbeitet:
danke. ich hab die Gerätebeschreibung vergessen zu installieren. Dies tut man unter -> Gerät installieren.

Nachdem ich nun den Pi zum starten gebracht habe, soll der I2C Bus laut dem I2C Master im Projekt nicht laufen.
-> Muss ich beim I2C Master oder dem untergeordneten MCP23017 den Wert oder den Standardwert ändern?
-> oder liegt es nur an einer falschen Verdrahtung?
 
Hallo,

'/dev/i2c-1' ist der standard für den Raspberry Pi Model B oder B+ nur das Model A verwendet '/dev/i2c-0' also müsste es so passen,
daher würde ich fast eher auf die Verdrahtung oder I2C Adresse tippen

ein Tip ware eventuell unter Linux folgendes zu installieren
sudo apt-get install i2c-tools
und dann:
sudo i2cdetect -y 1
dann müsstest du sehen was am Bus mit welcher Adresse dran ist.


Grüße
 
Zuletzt bearbeitet:
Hallo zusammen,

mal eine andere Frage zum Raspberry mit CoDeSys:
Am Anfang wurde in einem Artikel geschrieben, dass auf dem Raspberry keine remanenten Daten zur Verfügung stehen.
Gibt es da schon eine Lösung bzw. hat da schon jemand was gebastelt (z.B. speichern in txt oder csv Datei)?

Gruß L.T.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
momentan gehen die Retains nur wenn man ne USV anschließen würde, sowas gibts ja für den PI,
man braucht einfach einen "richtigen" Shutdown von Linux damit die Retains beim beenden des SPS Laufzeitsystems in ein File geschrieben werden können.
Dann funktioniert es.
Eine NVRAM Lösung habe noch keine gesehen (das ware die alternative Möglichkeit zu Retain in file)

Grüße
 
Die USV ist in der Leistungsklasse ja kein Problem.
Gibt's für lesen/schreiben der Variablen was fertiges oder muss man da selbst ran?
 
wenn du retains haben willst must du nur deine Variablen
VAR_GLOBAL PERSISTENT RETAIN oder VAR_GLOBAL RETAIN deklarieren ... mal bisserl in der Online Hilfe stöbern ;-)
wie gesagt USV "ist ein must have" wenn es funktionieren soll.
Klar alternativ kannst du natürlich immer auch Daten in ein File schreiben dann hast du alles selber in der Hand, da gib es ne Besipiel Applikation im Store.

Grüße
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Edi,

die Funktion von Retain und Persistent (und allen Kombinationsmöglichkeiten) ist mir durchaus bewusst.
Ich habe nur nachgefragt, weil der Raspberry ja doch nochmal a bissl was anders ist als eine richtige Industrie-Hardware-SPS.
Und da auch die Hardware etwas speziell ist, hab ich mir gedacht frag lieber nach bevor ich davon ausgehe, dass alles wie bei einer "normalen" CoDeSys-Soft-SPS funktioniert.

Gruß Lars
 
Hallo,

ich habe heute versucht den 1-Wire Bus an meinem Raspberry Pi B zum laufen zu bekommen. Leider funktioniert das aber nicht. Ich bekomme zwar in der Visu die IDs angezeigt, aber keine Werte. Im Status des 1Wire Masters steht:

1wire.JPG

Und im 1-wire bus E/A-Abbild kommt die Meldung:

1wire2.JPG

Ich habe bis jetzt nur mit der Codesys V2.3 gearbeitet und finde mich daher noch nicht ganz in der V3 zurecht. Muss beim Einsatz des 1Wire noch was beachtet werden ?

Gruß Kay

EDIT:

Der 1Wire Bus scheint aber über das Filesystem zu laufen. Zumindes kann ich über die Shell die Werte der Sensoren sehen:

shell.JPG
 
Zuletzt bearbeitet:
Hallo,

sollte schon gehen, kann es sein das du vergessen hast die Adresse der Sensoren einzutragen , siehe Screenshot?

Wenn du viele Sensoren angeschlossen hast, könnte auch dieser Beitrag aus dem Link unten, Hilfreich sein.
Es gibt beim Pi das Problem wenn man viele Onewire Sensoren anschließt, das es Fehlmessungen/Ausfälle der Sensoren gibt. (Ein allgemeines Problem hat nichts mit der SPS zu tun)
Der Benutzer hier in dem Beitrag scheint dafür eine Lösung bzw Workaround gefunden zu haben:

http://forum-de.codesys.com/viewtopic.php?f=18&t=4718



Grüße
 

Anhänge

  • OnewireAdresse.jpg
    OnewireAdresse.jpg
    52,6 KB · Aufrufe: 58
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen Edwin,

vielen Dank für Deine Antwort. Also es geht jetzt :) Nach dem ich den Wert vom ersten Sensor eingetragen habe, bekomme ich auch dessen Temperatur angezeigt. Ich war hier etwas verwirrt. Ich dachte durch anklicken der Sensoren in der Liste ( Visu ) werden die Werte angezeigt. Das geht aber bei mir nicht, oder ich weiß nicht wie ( wie schon geschrieben ist das mein erster Kontakt mit der V3 ). Ich möchte bei meiner Anwendung folgendes realisieren:

- Einlesen von ca. 15 1Wire Temperatur Sensoren
- Einlesen von ca. 15 analoger Spannungen ( über mcp3008 )
- Übertragen dieser 30 Werte über Netzwerkvariablen an einen Wago 750-881 Controller

Ist das austauschen von den Variablen zwischen Codesys 2.3 ( auf der Wago ) und Codesys v3 ( auf dem Raspberry ) überhaupt machbar ?

Gruß Kay
 
Hallo Kay,

nur draufclicken auf die Taeblle geht nicht, man muss immer die Adresse in der Konfiguration eintragen (sowas wie "Onewire Senoren Adress Scan" ist nicht implementiert)

- Einlesen von ca. 15 1Wire Temperatur Sensoren
Limit steht auf 10 Onewire sensoren unter Linux - musst du mal googlen wie man das hochdreht...

- Einlesen von ca. 15 analoger Spannungen ( über mcp3008 )
wenn der soviele Kanäle hat... bzw mehrere von dem mcp?!

- Übertragen dieser 30 Werte über Netzwerkvariablen an einen Wago 750-881 Controller
Netvars kann man zwischen V2.3 und V3 austauschen, in V3 bitte unter Tools-> Optionen-> Features -> auf Profissional stellen, damit du sende Liste und Empfangsliste anhängen kannst
+ auf Pi seite keine 255.255.255.255 als Broadcast verwenden sondern z.B 192.168.17.255 Netzwerk eintragen oder aber eben IP der V2.3 Steuerung (unter Linux ist Broadcast 255.255.255.255 nicht erlaubt)

Grüße
 
Zuletzt bearbeitet:
Hallo Edwin,

Limit steht auf 10 Onewire sensoren unter Linux - musst du mal googlen wie man das hochdreht...
Habe ich schon hochgedreht. Steht jetzt auf 20.

wenn der soviele Kanäle hat... bzw mehrere von dem mcp?!
Der MCP3008 hat 8 Kanäle. Würde dann zwei anschließen. Weiß nur nicht ob Codesys das unterstützt, da man dann den Chip Select Eingang des jeweiligen MCP ansteuern müsste.
Edit: Geht wohl doch ohne Probleme. Man kann den zweiten MCP3008 in der Konfig anhängen und dem spidev0.x eine 1 zuweisen. Damit sollte der zweite am SPI Bus hängende MCP3008 ausgelesen werden.

Netvars kann man zwischen V3 und V3 mache, bitte unter Tools-> Optionen-> Features -> Profissional stellen damit du sende Liste und Empfangsliste anhängen kannst
+ auf Pi seite keine 255.255.255.255 als Broadcast verwenden sondern z.B 192.168.17.255 Netzwerk eintragen oder aber eben IP der V2.3 Steuerung (unter Linux ist Broadcast 255.255.255.255 nicht erlaubt)
Das ist die Frage :) Gehen die Netvars zwischen v3.5 und v2.3 ( Du schreibst oben v3 und v3 und unten einmal v2.3 ) ?

Danke und Gruß
Kay
 
Zuletzt bearbeitet:
Zurück
Oben