# B&R X20 mit IF1030 --> Fehler 8258



## BadTaste (24 April 2011)

Hallo liebes Forum,
ich muß nun auch noch B&R lernen und möchte mit einer X20 CP 1483-1 und einem IF1030 einige Modbus Slave abfragen. nachdem ich schon die I/O's Hardware zum laufen habe bleibe ich nun beim INIT UP des Modbus (bzw. der klemme) hängen hier der Code im init Teil:

S1:=0;
S2:=1;
EventPV1:=1;
EventPV2:=1;
LocalPV1:=1;
LocalPV2:=1;
MBMOpen_xx.enable:=1;
MBMOpen_xx.pDevice:=ADR('SS1.IF1');
MBMOpen_xx.pMode:=ADR('/PHY=RS485 /PA=E /DB=8 /SB=1 /BD=9600');
MBMOpen_xx.pConfig:=ADR('datamod');
MBMOpen_xx.timeout:=2000;
MBMOpen_xx.ascii:=0;
MBMOpen_xx();

als  .status bekomme ich immer 8258 was heissen soll :
Interne Ressourcen wie Speicher, bzw. sonstige Betriebsmittel können nicht belegt werden.

hat jemand einen Tip für mich?

schöne Ostern
Michael


----------



## bits'bytes (24 April 2011)

BadTaste schrieb:


> ...
> MBMOpen_xx.pDevice:=ADR('SS1.IF1');
> ...


Hallo

probier mal "SS1.IF1", also mit "  statt   '


was zeigt die status -led des moduls an ? 

bg
bb


----------



## BadTaste (25 April 2011)

Hallo bits'bytes,
hab ich gemacht aber dann lässt sich das Programm nicht mehr erzeugen.
Die LED ist grün.

schöne Grüße
Michael


----------



## bits'bytes (25 April 2011)

Hi 
welchen Fehler beim compilieren bekommst du ?

Gibt es das Datenmodul schon auf der CPU (Groß/Kleinschreibung ev. beachten )

bg
bb


----------



## BadTaste (25 April 2011)

Hallo,
wenn ich da etwas eintrage was falsch ist bekomme ich einen anderen Fehler, sonst habe ich alles genau wie in der HW eingetragen.... ganz schön trickreich diese B&R...
Ja auf der CPU ist es gesteckt und sichtbar.
schöne Grüße
Michael


----------



## Sera (26 April 2011)

Ist das Datenobjekt korrekt angelegt?
Siehe dazu das Beispiel aus dem du den Code ja entnommen hast 
sry überlesen hast ja schon gecheckt.

Du lässt den Code auch im Init ablaufen oder?
Wenn du den so im Cylic laufen lässt wird in jedem zyklus der FUB aufgerufen und das das zu fehlern führt ist logisch
 hier das aus der Hilfe:

*Beispiel Code (INIT UP)*

S1:=0; S2:=1; EventPV1:=1; EventPV2:=1; LocalPV1:=1; LocalPV2:=1; MBMOpen_xx.enable:=1; MBMOpen_xx.pDevice:=ADR('SL0.SS1.IF1'); MBMOpen_xx.pMode:=ADR('RS232,9600,E,8,1'); MBMOpen_xx.pConfig:=ADR('datamod'); MBMOpen_xx.timeout:=2000; MBMOpen_xx.ascii:=0; MBMOpen_xx();  *Beispiel Code (zyklisch)*

EventPV1:=1; EventPV2:=1; IF(S1=0)THEN         MBMaster_xx.enable:=1;         MBMaster_xx.ident:=MBMOpen_xx.ident;         MBMaster_xx(); ELSE         MBMCmd_xx.enable:=1;         MBMCmd_xx.ident:=MBMOpen_xx.ident;         MBMCmd_xx.mfc:=1;         MBMCmd_xx.node:=1;         MBMCmd_xx.data:=ADR(LocalPV1);         MBMCmd_xx.offset:=0;         MBMCmd_xx.len:=5;         MBMCmd_xx(); END_IF IF(S2=0)THEN         MBMClose_xx.enable:=1;         MBMClose_xx.ident:=MBMOpen_xx.ident;         MBMClose_xx(); END_IF


----------



## BadTaste (26 April 2011)

Hallo Sera,
nur im initcode...

ja... Datenobjekt --> da hab ich schon gesucht, aber ich hab das direkt aus dem Beispiel genommen und er kompiliert ja problemlos, hab erst mal beim Support angefragt, der wusste auch nichts genaues und fragt im Hauptwerk nach.

hier der Baustein :

PROGRAM _INIT
S1:=0;
S2:=1;
EventPV1:=1;
EventPV2:=1;
LocalPV1:=1;
LocalPV2:=1;
MBMOpen_xx.enable:=1;
MBMOpen_xx.pDevice:=ADR('SS1.IF1');
MBMOpen_xx.pMode:=ADR('/PHY=RS485 /PA=E /DB=8 /SB=1 /BD=9600');
MBMOpen_xx.pConfig:=ADR('datamod');
MBMOpen_xx.timeout:=2000;
MBMOpen_xx.ascii:=0;
MBMOpen_xx();


END_PROGRAM


PROGRAM _CYCLIC

EventPV1:=1;
EventPV2:=1;
IF(S1=0)THEN
        MBMaster_xx.enable:=1;
        MBMaster_xx.ident:=MBMOpen_xx.ident;
        MBMaster_xx();
ELSE
        MBMCmd_xx.enable:=1;
        MBMCmd_xx.ident:=MBMOpen_xx.ident;
        MBMCmd_xx.mfc:=1;
        MBMCmd_xx.node:=1;
        MBMCmd_xx.data:=ADR(LocalPV1);
        MBMCmd_xx.offset:=0;
        MBMCmd_xx.len:=5;
        MBMCmd_xx();
END_IF
IF(S2=0)THEN
        MBMClose_xx.enable:=1;
        MBMClose_xx.ident:=MBMOpen_xx.ident;
        MBMClose_xx();
END_IF



schöne Grüße
Michael


----------



## Sera (26 April 2011)

Hm Ok,
Normal sollte das so funzen vom Code her.
check mal noch
- Schnittstellen Eigenschaft Master
- Schnittstelleneigenschaften Slave
- Kabel

Besonders auch in Hinsicht beim Master ob die I/O Configuration mit der Einstellungen bei Mode übereinstimmt ( Mit den Standarteinstellungen stimmt mindestens die Busrate nicht überein die ist im standart vom modul glaub bei 57.6 statt9.6)


----------



## Michael.Uray (26 April 2011)

Hi,

ich tippe mal darauf, dass beim Datenmodul was nicht stimmt, oder dass er die Schnittstelle nicht öffnen kann.
Heißt das Datenbodul "datamod"? Der Name muss mit jenem übereinstimmen, welcher der Funktion beim Öffnen übergeben wird.
Schaut dein Datenmodul genau so aus, oder hast du etwas verändert?

```
[COLOR=#ff00ff]"EventPV1 "[FONT=Courier New][SIZE=2][COLOR=#000000], 01, $01, [/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#ff00ff]"LocalPV1 "[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#000000], 0000, 0005[/COLOR][/SIZE][/FONT]
[FONT=Courier New][SIZE=2][COLOR=#ff00ff]"EventPV2 "[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#000000], 02, $01, [/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#ff00ff]"LocalPV2 "[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#000000], 0000, 0003[/COLOR][/SIZE][/FONT][/COLOR]
```
 
Bitte poste einmal dein Datenmodul, oder besser lade dein Projekt irgendwo (z.Bsp. Rapidshare) hoch.

Ist die Schnittstelle von einem anderen Programmteil schon belegt (oder noch immer)? Eventuell noch von vorhergehenden Versuchen?
Ich programmiere fast nur in C und da gibt es eine _EXIT Funktion in welcher Schnittstellen usw. beim Enfernen oder neu übertragen des Programmes wieder frei gegeben werden können. Ich weiß nicht, ob es das auch in ST gibt. Mache einmal einen Kaltstart, dann ist sie sicher wieder freigeben.

lg.
Michi


----------



## bits'bytes (29 April 2011)

BadTaste schrieb:


> .... bleibe ich nun beim INIT UP des Modbus (bzw. der klemme) hängen ....



Geht das schon ? Was war das Problem ?

Danke für die Info
bg
bb


----------



## BadTaste (21 Mai 2011)

Jawohl das läuft, hatte leider vergessen zu schreiben... sorry
der Support hat mir geholfen, ich habe ein Fehler im Variablenaufruf im Datenmodul

Im Datenmodul wird der Programmname dem Variablennamen vorangestellt.  
der Programmname unterscheidet sich aber von dem im Beispiel.


die meisten Fehler macht man halt doch selbst...

schöne Grüße
Michael


----------



## Michael.Uray (13 Juli 2011)

BadTaste schrieb:


> Im Datenmodul wird der Programmname dem Variablennamen vorangestellt.
> der Programmname unterscheidet sich aber von dem im Beispiel.
> 
> die meisten Fehler macht man halt doch selbst...


Eigentlich ist es ja im Beispiel schon nicht richtig angeben.
Wenn lokale Variablen (sind nur im jeweiligen Task gültig) verwendet werden, muss der entsprechende Taskname mit angegeben werden, da die SPS sonst den Namen nicht sicher zuordnen kann. Es könnte ja mehrer lokale Variablen mit dem selben Namen geben.

Es sollte eigentlich heißen:

```
[FONT=Courier New][SIZE=2][COLOR=#ff00ff]"TaskXXX:EventPV1 "[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#000000], 01, $01, [/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#ff00ff]"[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#ff00ff]TaskXXX:[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#ff00ff]LocalPV1 "[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#000000], 0000, 0005
[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#ff00ff]"[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#ff00ff]TaskXXX:[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#ff00ff]EventPV2 "[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#000000], 02, $01, [/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#ff00ff]"[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#ff00ff]TaskXXX:[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#ff00ff]LocalPV2 "[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#000000], 0000, 0003[/COLOR][/SIZE][/FONT]
```


----------

