Bernecker + Rainer Bibliotheken für ModBus TCP und GSM SMS-Versand

MandiNice

Level-1
Beiträge
149
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Wir planen den Umstieg auf B&R.

Gibt es Bibliotheken ausser die von B&R ?

Im Besonderen fehlt mir noch etwas für ModBus TCP/IP und GSM-Modem SMS-Versand ?

Oscat gibt es nicht für B&R ?



Weiters fehlt mir auch noch etwas Dkou.

Gibt es Programmierhandbücher für B&R ?
Gibt es Beispielprogramme für B&R ?


Danke Euch.

Beste Grüße
Mandi
 
Gibt es Bibliotheken ausser die von B&R ?
Natürlich - bei jedem B&R Programmierer in der Schublade :D

Mir sind keine weiteren "offiziellen" B&R-Bibliotheken von etwaigen Fremdherstellern bekannt.


Im Besonderen fehlt mir noch etwas für ModBus TCP/IP und GSM-Modem SMS-Versand ?
Modbus-TCP Master bzw. Client wird per Automation-Studio 3 von Haus aus unterstützt.

Es gibt aber meines Wissens auch eine inoffizielle Bibliothek für Modbus TCP von B&R.
Frag halt mal bei deinem zuständigen B&R Vertriebler bzw. B&R-Büro nach.

Bzgl. GSM-Modem / SMS Geschichten.
Hier wirst du von B&R mit Sicherheit keine offizielle fertige Lösung finden.
B&R bietet dir Bausteine für TCP/UDP Kommunikation und serielle-Kommunikation im Lieferumfang mit an, den Rest darf man sich dann selber stricken.
Es kann aber natürlich gut sein, dass z.B. von einem B&R-Büro bereits für einen anderen Kunden etwas in dieser Richtung entwickelt wurde.
Auch hier hilft die Nachfrage direkt bei B&R.

Oscat gibt es nicht für B&R ?
B&R unterstützt natürlich auch Structured-Text.
Somit kann man die Codesys-Version von Oscat prizipiell verwenden.
Wobei man hier doch etwas Hand anlegen muss, da bei B&R die Syntax z.B. bei FB-Aufrufen anders aussieht.

Gibt es Programmierhandbücher für B&R ?
Es gibt ähnlich wie bei Beckhoff ein Online-Hilfe System, welches beim Programmiersystem "Automation Studio" mit installiert wird.

Gibt es Beispielprogramme für B&R ?
Bei der Automation-Studio Installation ist ein Beispielprojekt dabei.


Frag halt mal bei B&R bzgl. einer Demo-Version vom Automation-Studio nach, dann kannst du dir das mal in Ruhe anschauen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wende dich doch einfach direkt an den B&R-Support deiner Region - die können dir dann personalisiert Antworten auf deine Fragen geben.

Auf der Website des Unternehmens hast kannst du entweder das Kontaktformular direkt ausfüllen http://www.br-automation.com/de/service/supportanfrage/ (hier dann auch die genau Wahl der Region etc.), oder, je nach Standort, den Service vor Ort in Anspruch nehmen: http://www.br-automation.com/de/unternehmen/standorte/deutschland/


  • Grundsätzlich gibt es für die Themen Modbus TCP/IP diverse Kapitel in der Automation Studio Hilfe.
  • Zum Thema SMS Versand gibt es eine Library (PLC Messaging) welche ebenfalls interessant wäre.


  • Oscat Library beinhaltet diverse Bausteine bzw. Funktionaliätetn, welche mit Sicherheit auch (möglicherweise als einzelne Library) mit B&R abzubilden sind, hier muß mit dem zuständigen Büro geklärt werden welche Teile interessant sind um ggf. alternative, gleichgelagerte Software und Inputs geben zu können.
 
Hallo,
sehr interessant ist auch eine 'inoffizielle' Lib Namens "CSV_Lib", damit kannst du mit wenig Aufwand Variablen als CSV Datei speichern und laden (einfache Rezeptverwaltung, Initialisierungsdaten usw.).

Problem: wenn die Datenmenge groß wird, kanns so richtig (aber richtig) lang dauern. Solange das einige Hundert Byte sind ist es OK.

Bekommst du sicher auch über deinen Kontakt.

BG
BB
 
Hi,
du sparst dir die ganze Mühe des Mappens zwischen binärem File-Speicher und PV-Variablen.

Das bringt dir den Vorteil dass sich ein Datentyp auch mal ändern darf.

Wenn du z.B. (Schematisch) folgenden Datentyp hast
Code:
var1...INT
var2...INT
var3...INT

du speicherst und ladest dass binär gibts kein Problem, eh klar.

Jetzt wird eine Erweiterung notwendig und dein neuer Datentyp sieht plötzlich so aus

Code:
var1...INT
var11...INT
var2...INT
var3...INT

Im binären Fall kannst du jetzt alles vergessen (die Änderungen sind ja nicht immer so einfach wie hier :)).
Du kannst die alten Daten nicht mehr verwenden (und das können ja hunderte Variablen sein), da sind Bediener dann gleich mal sauer.

die CSV_LIB schreibt schematisch dass so rein

var1....INT....300
var2....INT.....150

usw.

Beim Auslesen wird nur "var1" genommen und gegen eine PV gemappt. Gibts die PV, wird der Wert drauf geschrieben, gibt es die PV nicht passiert nix (man kann einstellen dass ungeschriebene PVs in einer Liste erfasst werden).

d.h. es stört im Prinzip nicht dass bei 'alten' Daten die Variable var11 nicht vorhanden war (solange ich sie irgendwie initialisieren oder Anzeigen kann falls kein Wert in der Datei steht).

Aber du kannst jederzeit den Datentyp umstrukturieren (Reihenfolge). Es wird immer der PV -Name der Datei gegen eine PV gemappt und zugewiesen.

Ein weiterer Vorteil ist dass die CSV Dateien von anderen Programmen (oder Bediener per Notepad) bearbeitet werden können (falls unbedingt mal nötig).
Man kann auch gleich mal nachsehen was wirklich drinnen steht (human readable).

Also, meiner Meinung nach schon einige Vorteile.

BG
BB
 
Hallo BB, ... und deshalb braucht sie Zeit... Abprüfen, ob es die PV gibt...
Viele PV's - viel Zeit :p
Hört sich aber gut an. Läuft die auch im AS3? Danke.
Gaiskasimir
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
ja, ich kenns nur für das AS3 und AS2 (habs damals glaube auch schon verwendet ist aber egal). Geht sicher auch für das AS4.

Ja, kann echt dauern, haben eine Konfiguration mit bis zu 30.000 Einträgen, da konnten wir es echt nicht mehr verwenden. Wenn das speichern dann mal 15 Minuten dauert :).

Aber wie gesagt, einige Hundert Einträge ist akzeptabel.

BG
BB
 
Hallo BB,

habe die LIB erhalten, komme aber erst jetzt dazu - und schon steht die Steuerung in Service. Wollte erst einmal mit CSV_Init anfangen...
Den Aufruf tätige ich im Init-UP. Was mache ich da falsch??

Gruß Gaiskasimir

Testvar[0].var1 =50
Testvar[0].var2=20

strcpy(adr(pStruct[0]),"Testvar") ; Array[0..1] von String[80]


CSV_Init_0.pStructName = adr(pStruct)
CSV_Init_0.NumOfStructs =1
CSV_Init_0.FullNameLenght =0
CSV_Init_0.Options =0
CSV_Init_0 FUB CSV_Init()
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo BB,

alles wird gut - fast alles:

Testvar[0].var1 =50 ; [0..5]
Testvar[0].var2=20

Vari2= 200

pStruct[0]= "Vari2"
pStruct[1]= "Testvar"

CSV_Init_0.pStructName = adr(pStruct)
CSV_Init_0.NumOfStructs =2
CSV_Init_0.FullNameLenght =1
CSV_Init_0.Options =0
CSV_Init_0 FUB CSV_Init()

und so sieht die Datei dann aus:

//###############################################################################################
Vari2UDINT200.0
//###############################################################################################
Testvar[0].var1USINT50.0
Testvar[0].var2USINT20.0
Testvar[1].var1USINT0.0
Testvar[1].var2USINT0.0


tausche ich die pStruct - Elemente aus :

pStruct[0]= "Testvar"
pStruct[1]= "Vari2"

sieht die Datei so aus:


//###############################################################################################
Testvar[0].var1USINT50.0
Testvar[0].var2USINT20.0
Testvar[1].var1USINT0.0
Testvar[1].var2USINT0.0
Testvar[2].var1USINT0.0
Testvar[2].var2USINT0.0
Testvar[3].var1USINT0.0
Testvar[3].var2USINT0.0
Testvar[4].var1USINT0.0
Testvar[4].var2USINT0.0


wo bleibt vari2 und wo bleibt mein Testvar[5] ?!

Gruß Gaiskasimir
 
Hi,
tja, da waren sie wieder meine 3 Probleme :p

Im Ernst, ich habe das so noch gar nicht verwendet. Ich habe bisher immer nur eine Struktur (also meinen Parameter Satz) reingeschrieben und gelesen - und es hat immer alles gepasst!

Bei dir fehlen ja auch bei Variante 1 bei "Testvar" ab Index 2,

Very strange.

Ich verstehe nicht dass so gravierende Fehler in der Software sind, hast du nicht auch den Source Code bekommen ? Vielleicht kannst du ja mal durchsteppen...

Kann dir hier leider auch nicht weiterhelfen.

BG
BB
 
Hallo BB,

aber grundsätzlich gedanklich richtig gemacht - oder ?

Folgendes stand bei der LIB dabei:
This library is not a B&R standard product and therefore not shipped with B&R Automation Studio.
There is no guarantee for support, error corrections or maintainance of this library.

Super!

Gruß Gaiskasimir
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Gaiskasimir,

ja, diesen Zugang verstehe ich auch nicht ganz, muss man aber akzeptieren. Wenn sie das nicht supporten dann machen sie das eben nicht. so gesehen bin ich einfach mal froh dass ich das verwenden kann was vorhanden ist.

Was mir noch auffällt und du probieren könntest: schreib mal bei den Variablen den tasknamen davor "task:var",
vielleicht hilft das noch was (bei meinem kurzen Test hier hat das einen Unterschied gemacht).

BG
BB
 
Hallo BB,

und so sieht's dann ohne meinen blöden Fehler aus ( Habe CSV_Search() zyklisch aufgerufen ). Nun fehlt nix mehr.
Nochmal ein dickes Danke!

Testvar[0].var1 =50
Testvar[0].var2=20

Vari2= 200

strcpy(adr(teststring),"Hallo Welt")

pStruct[0]= "Testvar"
pStruct[1]= "Vari2"
pStruct[2]= "teststring"

CSV_Init_0.pStructName = adr(pStruct)
CSV_Init_0.NumOfStructs =3
CSV_Init_0.FullNameLenght =1
CSV_Init_0.Options =0
CSV_Init_0 FUB CSV_Init()



//############################################################################################### ;;
// Structure Size: 12 Bytes
//############################################################################################### ;;
Testvar[0].var1;USINT;50.0
Testvar[0].var2;USINT;20.0
Testvar[1].var1;USINT;0.0
Testvar[1].var2;USINT;0.0
Testvar[2].var1;USINT;0.0
Testvar[2].var2;USINT;0.0
Testvar[3].var1;USINT;0.0
Testvar[3].var2;USINT;0.0
Testvar[4].var1;USINT;0.0
Testvar[4].var2;USINT;0.0
Testvar[5].var1;USINT;0.0
Testvar[5].var2;USINT;0.0
//############################################################################################### ;;
// Structure Size: 4 Bytes
//############################################################################################### ;;
Vari2;UDINT;200.0
//############################################################################################### ;;
// Structure Size: 81 Bytes
//############################################################################################### ;;
teststring;STRING;Hallo Welt
 
Zurück
Oben