# Modbus bei B&R CP1586



## Luzie (30 Juli 2020)

Hallo,

ich weiss es waren bestimmt schon einige Beiträge über Modbus bei B&R hier vorhanden, aber diese haben mich echt nicht Weitergebracht.

Ich habe RevulutionPI von der Firma Kunbus mit Modbus am Arbeiten, dieser Funktioniert auch was den Datenaustausch mit einem Arduino und einem Raspberry angeht. Nun Wollte ich aber die B&R CP1586 mit dem RevPI verbinden, dazu habe ich im RevPI noch einen Master eingerichtet der den Slave (CP1586) mit Daten füttern soll. Aber dies Funktioniert irgendwie nicht.

Die Daten werden Richtig vom RevPI gesendet.




diese kommen auch auf dem Port der bei B&R angegeben ist richtig raus, aber sie kommen nicht bei der SPS an. Ich habe die Konfiguration wenn ich das Richtig verstanden richtig gemacht.





nun weiss ich aber nicht ob da noch was Fehlt. Weil in der Hilfe von B&R steht das ich im Programm noch was einfügen muss damit der Dienst auch Funktioniert. Nur leider ist die Hilfe keine Wirkliche Hilfe. da was da drinne steht nicht Funktioniert.

```
MBSlave_xx.enable:=1;
MBSlave_xx.ident:=MBSOpen_xx.ident;
MBSlave_xx();
[COLOR=#0000ff]IF[/COLOR](S1=1)[COLOR=#0000ff]THEN[/COLOR]
        MBSClose_xx.enable:=1;
        MBSClose_xx.ident:=MBSOpen_xx.ident;
        MBSClose_xx();
[COLOR=#0000ff]END_IF[/COLOR]
```
das habe ich eingefügt aber beim kompelieren sagt er immer das der TYP nicht definiret ist. Aber mehr steht leider nicht dazu wie ich das mache.
Kann mir wer weiterhelfen damit ich das Teil mal zum Laufen bekomme?

Danke schon mal


----------



## roger34 (30 Juli 2020)

Ist das das ganze Programm ?
Hast du die Variablen MBSlave_xx und MBSclose_xx angelegt. 
Hast du das B&R Lib Drv_mbus eingefügt ?


----------



## Luzie (31 Juli 2020)

Hallo Roger34,

Ja das ist das einzige Problem was ich habe. Ich hatte diese Variablen alle Angelegt und wollte dann die Variablendeklaration machen, aber ich habe bei B&R Bibliotehken leider keine Lib dafür gefunden, auch die die hier genannt hast existiert nicht in der Version die ich hier benutze. Vieleicht liegt es ja daran das ich nur diese 90 Tage Testversion habe. Das einzige was ich an lib was mit Modbus zu tun hat habe ist die AsMbTCPS und AsMbTCP. Leider ist in der Hilfe dazu nichts Angegeben. Ich nutze derzeit die Version 4.7.2.98 AS Evaluation License.

Es ist auch nicht Beschrieben wie die MBSlave_xx richtig benannt werden und für was _xx steht. Es ist echt Schwer mit solcher Software zu arbeiten und auch umständlich wenn für jede Variable noch per Hand der Typ oder FUB_Typ ausgesucht werden muss.
Also ich weiss nicht wie ich das hinbiegen kann wenn mir die ein oder andere Lib fehlt.

gruss


----------



## Luzie (1 August 2020)

Roger,

ich habe es nun gefunden die DRV_MBUS, konnte es auch hochladen aebr der Modbus empfängt noch kein einziges Coil. Ich hätte nicht gedacht das es bei B&R so schwer ist den Modbus zum laufen zu bringen.
Die MBus geräte die ich habe muss ich den MB nur Aktivieren und das Teil sendet oder Empfängt, aber hier geht noch nichts. Kann es denn so schwer sein soein bissel MBus zum funktionieren zu bewegen ohne 1000 einstellungen machen zu müssen?
Ich will doch nur Daten (Coils) auf dem B&R Teil empfangen. und eventuell senden.
Da liebe ich den RevPI doch, nur leider kann der kein X67 X2X bus. Was ich aber gerne nutzen würde um eben über den Modbus daten zu schreiben und lesen. 
Ich habe keine Ahnung was ich noch alles machen muss.

Wenn du mir da eventuell helfen könntest wäre ich dir dankbar.

gruss


----------



## Luzie (4 August 2020)

Hallo,

kann mir hier niemand helfen? ich bin nicht so Konform was das angeht. Daher wäre ich sehr dankbar für Hilfe. Ich möchte doch nur den Dummen Modbus zum laufen bringen, aber irgendwie will das nicht so.

Ich habe auf der gegenseite ein MBMaster der Coils (3 zum testen) an die registeradress 16384 des Slave sendet. Aber diese kommen beim Slave nicht an da dieser seinen Dienst verweigert.
Leider habe ich das ganze Wochenende damit zugbracht um das Teil zum Laufen zu bekommen, aber ohne ersichtlichen Erfolg. Ich glaube ich hau das teil in die Tonne wenns nicht klappt.

Der Rest vom Mbus funktioniert ohne Probleme und ohne das ich ellenlangen Code verwenden musste. Mb einschalten Variablen zuweisen und fertig war die Sache, aber hier brauchste wo ein Examen dafür. Kopf Raucht aber kein Ergbniss. Die Hilfe bringt auch nicht viel, da sie keine oder kaum Beispiele vorhanden haben.

NAja ich gebe es auf mit B&R


----------



## Luzie (25 August 2020)

nach langem hin und her läuft der modbus Slave nun endlich. Nur ist es Blöd das bei Dynamische Kanäle die Coils alle einzeln eingetragen werden müssen.
Bei der Fixen Buffergröße spart man sich das ganze. Aber wie genau das Funktioniert ist nicht beschrieben.
Sie schreiben nur das ich die Lib AsMBTCPs benutzen soll. Aber es gibt keine eindeutige Erklärung wie ich diese genau benutze oder wo ich eintragen kann welche Coils ich habe und bei welche Adresse diese beginnen auch wo sie zugeordet werden in der PV.
Hat hier nicht wer eine genaue Anleitung oder kann mir anhand eines Beispieles sagen wie ich das machen soll? Da ich kein Dip Ing bin und vom Programmieren mit Sowas noch neuling bin und erst lerne um zu verstehen wie das geht muss ich hier eben nachfragen. Der support von denen ist keine wirklich gute hilfe. Dieser verweist mich nur auf die Hilfe auf die Seiten die ich aber schon längst gefunden und gelesen habe. Aber schlauer bin ich deswegen Trotzdem nicht, da keine Fallbeispiele vorhanden sind.

Ein Beispiel wie es gemacht wird wäre schon hilfreich.


----------

