S7-SoftSPS:cifX Grundlegende Konfiguration: Unterschied zwischen den Versionen

Aus IBHsoftec Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Hier werden die grundlegenden Konfigurationseigenschaften der cifX-Karten eingestellt. Wenn kein PROFIBUS<sup>®</sup> verwendet wird, muss die Konfiguration …“)
 
 
(9 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt)
Zeile 3: Zeile 3:
 
Wenn kein PROFIBUS<sup>®</sup> verwendet wird, muss die Konfiguration mit dem Systemkonfigurator der Firma Hilscher durchgeführt werden:
 
Wenn kein PROFIBUS<sup>®</sup> verwendet wird, muss die Konfiguration mit dem Systemkonfigurator der Firma Hilscher durchgeführt werden:
  
* [[SyConNET.htm|Konfiguration der cifX-Karte mit dem Systemkonfigurator]]
+
* [[S7-SoftSPS:Konfiguration der cifX-Karte mit SYCON.NET|Konfiguration der cifX-Karte mit dem Systemkonfigurator]]
  
 
Wie der Treiber in die ''S7-SoftSPS'' eingebunden wird, ist Bestandteil dieser Anleitungen:
 
Wie der Treiber in die ''S7-SoftSPS'' eingebunden wird, ist Bestandteil dieser Anleitungen:
  
* [[Oberflaeche/cifX.htm|Konfiguration via Oberfläche]]
+
* [[S7-SoftSPS:cifX Oberfläche|Konfiguration via Oberfläche]]
* [[INI/cifX.htm|Konfiguration in PLC43.INI]]
+
* [[S7-SoftSPS:cifX Einstellungen der IBHsoftec S7-SoftSPS|Konfiguration in PLC43.INI]]
  
 
== Verwenden der SFCs ==
 
== Verwenden der SFCs ==
Zeile 16: Zeile 16:
 
Dieser Baustein ermöglicht es verschiedene Informationen aus der cifX-Karte zu lesen
 
Dieser Baustein ermöglicht es verschiedene Informationen aus der cifX-Karte zu lesen
  
 
+
<code>
 
{|
 
{|
 
|-
 
|-
 
| CALL || SFC/FC 1008  
 
| CALL || SFC/FC 1008  
 
|-
 
|-
|style="width:7em"|  COMMAND ||style="width:14em"|  := 0 ||  //INPUT DWORD
+
|style="width:7em"|  COMMAND ||style="width:16em"|  := 0 ||  //INPUT DWORD
 
|-
 
|-
 
| BOARD || := 0 || //INPUT BYTE
 
| BOARD || := 0 || //INPUT BYTE
Zeile 29: Zeile 29:
 
| DATA || := P#DB10.DBX0.0 BYTE 100 || //INPUT ANY
 
| DATA || := P#DB10.DBX0.0 BYTE 100 || //INPUT ANY
 
|-
 
|-
| RET_VAL || := 0 || //RESULT INT
+
| RET_VAL || := MW 0 || //RESULT INT
 
|}
 
|}
 
+
</code>
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 56: Zeile 56:
  
 
Der Busdiagnose SFC liest den CommonStatusBlock aus und gibt die Information an den Ausgängen zurück
 
Der Busdiagnose SFC liest den CommonStatusBlock aus und gibt die Information an den Ausgängen zurück
 +
<code>
 +
{|
 +
|-
 +
| CALL || SFC/FC 1009
 +
|-
 +
|style="width:7em"|  BOARD ||style="width:16em"|  := 0 ||  //INPUT BYTE
 +
|-
 +
| CHANNEL || := 0 || //INPUT BYTE
 +
|-
 +
| RET_VAL || := MW 0 || //RESULT INT
 +
|-
 +
| COMCOS || := MD 2  || //OUTPUT DWORD
 +
|-
 +
| COMSTATE || := MD 6 || //OUTPUT DWORD
 +
|-
 +
| COMERROR || := MD 10 || //OUTPUT DWORD
 +
|-
 +
| SLAVESTATE || := MD 14 || //OUTPUT DWORD
 +
|-
 +
| SLAVEERROR || := MD 18 || //OUTPUT DWORD
 +
|-
 +
| SLAVECONF || := MD 22 || //OUTPUT DWORD
 +
|-
 +
| SLAVEACTIVE || := MD 26 || //OUTPUT DWORD
 +
|-
 +
| SLAVEFAULT || := MD 30 || //OUTPUT DWORD
 +
|}
 +
</code>
  
<table>
+
'''Message SFC'''
<tbody>
+
<tr class="odd">
+
<td align="left">CALL</td>
+
<td align="left">SFC/FC 1009</td>
+
<td align="left"></td>
+
</tr>
+
<tr class="even">
+
<td align="left">BOARD</td>
+
<td align="left">:= 0</td>
+
<td align="left">//INPUT BYTE</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">CHANNEL</td>
+
<td align="left">:= 0</td>
+
<td align="left">//INPUT BYTE</td>
+
</tr>
+
<tr class="even">
+
<td align="left">RET_VAL</td>
+
<td align="left">:= MW 0</td>
+
<td align="left">//RESULT INT</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">COMCOS</td>
+
<td align="left">:= MD 2</td>
+
<td align="left">//OUTPUT DWORD</td>
+
</tr>
+
<tr class="even">
+
<td align="left">COMSTATE</td>
+
<td align="left">:= MD 6</td>
+
<td align="left">//OUTPUT DWORD</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">COMERROR</td>
+
<td align="left">:= MD 10</td>
+
<td align="left">//OUTPUT DWORD</td>
+
</tr>
+
<tr class="even">
+
<td align="left">SLAVESTATE</td>
+
<td align="left">:= MD 14</td>
+
<td align="left">//OUTPUT DWORD</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">SLAVEERROR</td>
+
<td align="left">:= MD 18</td>
+
<td align="left">//OUTPUT DWORD</td>
+
</tr>
+
<tr class="even">
+
<td align="left">SLAVECONF</td>
+
<td align="left">:= MD 22</td>
+
<td align="left">//OUTPUT DWORD</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">SLAVEACTIVE</td>
+
<td align="left">:= MD 26</td>
+
<td align="left">//OUTPUT DWORD</td>
+
</tr>
+
<tr class="even">
+
<td align="left">SLAVEFAULT</td>
+
<td align="left">:= MD 30</td>
+
<td align="left">//OUTPUT DWORD</td>
+
</tr>
+
</tbody>
+
</table>
+
  
'''Message SFC'''<br />
+
Mit Hilfe des Message SFCs können Telegramme zur cifX-Karte geschickt werden
Mit Hilfe des Message SFCs können Telegramme zur cifX-Karte geschickt werden
+
<code>
 +
{|
 +
|-
 +
| CALL || SFC/FC 1010
 +
|-
 +
|style="width:7em"|  SEND ||style="width:16em"|  := 0 ||  //INPUT BOOL
 +
|-
 +
| BOARD || := 0 || //INPUT BYTE
 +
|-
 +
| CHANNEL || := 0 || //INPUT BYTE
 +
|-
 +
| TIMEOUT || := 5  || //INPUT DWORD
 +
|-
 +
| INDATA || := P#DB10.DBX0.0 BYTE 20 || //INPUT ANY
 +
|-
 +
| OUTDATA || := P#DB0.DBX20.0 BYTE 20 || //INPUT ANY
 +
|-
 +
| RET_VAL || := MW 0|| //RESULT INT
 +
|-
 +
| BUSY || := M2.0 || //OUTPUT BOOL
 +
|-
 +
| NDR || := M2.1 || //OUTPUT BOOL
 +
|-
 +
| ERROR  || := M2.2 || //OUTPUT BOOL
 +
|}
 +
</code>
  
<table>
+
'''SFC 14'''
<tbody>
+
<tr class="odd">
+
<td align="left">CALL</td>
+
<td align="left">SFC/FC 1010</td>
+
<td align="left"></td>
+
</tr>
+
<tr class="even">
+
<td align="left">SEND</td>
+
<td align="left">:= 0</td>
+
<td align="left">//INPUT BOOL</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">BOARD</td>
+
<td align="left">:= 0</td>
+
<td align="left">//INPUT BYTE</td>
+
</tr>
+
<tr class="even">
+
<td align="left">CHANNEL</td>
+
<td align="left">:= 0</td>
+
<td align="left">//INPUT BYTE</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">TIMEOUT</td>
+
<td align="left">:= 5</td>
+
<td align="left">//OUTPUT DWORD</td>
+
</tr>
+
<tr class="even">
+
<td align="left">INDATA</td>
+
<td align="left">:= P#DB10.DBX0.0 BYTE 20</td>
+
<td align="left">//INPUT ANY</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">OUTDATA</td>
+
<td align="left">:= P#DB0.DBX20.0 BYTE 20</td>
+
<td align="left">//INPUT ANY</td>
+
</tr>
+
<tr class="even">
+
<td align="left">RET_VAL</td>
+
<td align="left">:= MW 0</td>
+
<td align="left">//RESULT INT</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">BUSY</td>
+
<td align="left">:= M2.0</td>
+
<td align="left">//OUTPUT BOOL</td>
+
</tr>
+
<tr class="even">
+
<td align="left">NDR</td>
+
<td align="left">:= M2.1</td>
+
<td align="left">//OUTPUT BOOL</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">ERROR</td>
+
<td align="left">:= M2.2</td>
+
<td align="left">//OUTPUT BOOL</td>
+
</tr>
+
</tbody>
+
</table>
+
  
'''SFC 14'''<br />
+
Mittels des Bausteins DPRD_DAT können Daten aus dem cifX Dualport RAM gelesen werden
Mittels des Bausteins DPRD_DAT können Daten aus dem cifX Dualport RAM gelesen werden
+
  
<table>
+
<code>
<tbody>
+
{|
<tr class="odd">
+
|-
<td align="left">CALL</td>
+
| CALL ||  SFC/FC 14  
<td align="left">SFC/FC 14</td>
+
|-
<td align="left"></td>
+
|style="width:7em"LADDR ||style="width:16em":= W#16#100 ||  //INPUT WORD
</tr>
+
|-
<tr class="even">
+
| RET_VAL || := MW 0 || //RESULT INT
<td align="left">LADDR</td>
+
|-
<td align="left">:= W#16#100</td>
+
| RECORD || := P#M 100.0 BYTE 1 || //OUTPUT ANY  
<td align="left">//INPUT WORD</td>
+
|}
</tr>
+
</code>
<tr class="odd">
+
<td align="left">RET_VAL</td>
+
<td align="left">:= MW 0</td>
+
<td align="left">//RESULT INT</td>
+
</tr>
+
<tr class="even">
+
<td align="left">RECORD</td>
+
<td align="left">:= P#M 100.0 BYTE 1</td>
+
<td align="left">//OUTPUT ANY</td>
+
</tr>
+
</tbody>
+
</table>
+
  
<br />
+
{| class="wikitable"
 +
|-
 +
! Parameter !! Datentyp !! Bedeutung
 +
|-
 +
| LADDR || WORD || Startadresse der zu lesenden Daten
 +
|-
 +
| RET_VAL || INT || 0 bei Erfolg
 +
|-
 +
| RECORD || ANY || ANY-Pointer auf gelesenen Daten
 +
|}
  
  
<table>
+
'''SFC 15'''
<tbody>
+
<tr class="odd">
+
<td align="left">Parameter</td>
+
<td align="left">Datentyp</td>
+
<td align="left">Bedeutung</td>
+
</tr>
+
<tr class="even">
+
<td align="left">LADDR</td>
+
<td align="left">WORD</td>
+
<td align="left">Startadresse der zu lesenden Daten</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">RET_VAL</td>
+
<td align="left">INT</td>
+
<td align="left">0 bei Erfolg</td>
+
</tr>
+
<tr class="even">
+
<td align="left">RECORD</td>
+
<td align="left">ANY</td>
+
<td align="left">ANY-Pointer auf gelesenen Daten</td>
+
</tr>
+
</tbody>
+
</table>
+
  
'''SFC 15'''<br />
+
Mittels des Bausteins DPWR_DAT können Daten in den cifX Dualport RAM geschrieben werden
Mittels des Bausteins DPWR_DAT können Daten in den cifX Dualport RAM geschrieben werden
+
<code>
 +
{|
 +
|-
 +
| CALL ||  SFC/FC 15
 +
|-
 +
|style="width:7em"|  LADDR ||style="width:16em"|  := W#16#100  ||  //INPUT WORD
 +
|-
 +
| RECORD || := P#M 102.0 BYTE 1 || //INPUT ANY
 +
|-
 +
| RET_VAL || := MW 0  || //RESULT INT 
 +
|}
 +
</code>
  
<table>
+
{| class="wikitable"
<tbody>
+
|-
<tr class="odd">
+
! Parameter !! Datentyp !! Bedeutung
<td align="left">CALL</td>
+
|-
<td align="left">SFC/FC 15</td>
+
| LADDR || WORD || Startadresse der zu schreibenden Daten
<td align="left"></td>
+
|-
</tr>
+
| RECORD || ANY || ANY-Pointer auf zu schreibende Daten
<tr class="even">
+
|-
<td align="left">LADDR</td>
+
| RET_VAL || INT || 0 bei Erfolg
<td align="left">:= W#16#100</td>
+
|}
<td align="left">//INPUT WORD</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">RECORD</td>
+
<td align="left">:= P#M 102.0 BYTE 1</td>
+
<td align="left">//OUTPUT ANY</td>
+
</tr>
+
<tr class="even">
+
<td align="left">RET_VAL</td>
+
<td align="left">:= MW 0</td>
+
<td align="left">//RESULT INT</td>
+
</tr>
+
</tbody>
+
</table>
+
 
+
<br />
+
 
+
 
+
<table>
+
<tbody>
+
<tr class="odd">
+
<td align="left">Parameter</td>
+
<td align="left">Datentyp</td>
+
<td align="left">Bedeutung</td>
+
</tr>
+
<tr class="even">
+
<td align="left">LADDR</td>
+
<td align="left">WORD</td>
+
<td align="left">Startadresse der zu schreibenden Daten</td>
+
</tr>
+
<tr class="odd">
+
<td align="left">RECORD</td>
+
<td align="left">ANY</td>
+
<td align="left">ANY-Pointer auf zu schreibende Daten</td>
+
</tr>
+
<tr class="even">
+
<td align="left">RET_VAL</td>
+
<td align="left">INT</td>
+
<td align="left">0 bei Erfolg</td>
+
</tr>
+
</tbody>
+
</table>
+

Aktuelle Version vom 13. Dezember 2012, 11:24 Uhr

Hier werden die grundlegenden Konfigurationseigenschaften der cifX-Karten eingestellt.

Wenn kein PROFIBUS® verwendet wird, muss die Konfiguration mit dem Systemkonfigurator der Firma Hilscher durchgeführt werden:

Wie der Treiber in die S7-SoftSPS eingebunden wird, ist Bestandteil dieser Anleitungen:

Verwenden der SFCs

Kommando SFC

Dieser Baustein ermöglicht es verschiedene Informationen aus der cifX-Karte zu lesen

CALL SFC/FC 1008
COMMAND  := 0 //INPUT DWORD
BOARD  := 0 //INPUT BYTE
CHANNEL  := 0 //INPUT BYTE
DATA  := P#DB10.DBX0.0 BYTE 100 //INPUT ANY
RET_VAL  := MW 0 //RESULT INT

Kommando Länge ANY-Pointer Datenbereich Bedeutung
1 24 Liest die SystemInformation aus der cifX-Karte aus
2 48 Liest den SystemInfoBlock aus der cifX-Karte aus
3 Liest den SystemChannelBlock aus der cifX-Karte aus
4 8 Liest den SystemControlBlock aus der cifX-Karte aus
5 64 Liest den SystemStatusBlock aus der cifX-Karte aus
6 165 Liest die ChannelInformation aus der cifX-Karte aus
7 64 Liest den CommonStatusBlock aus der cifX-Karte aus


Busdiagnose SFC

Der Busdiagnose SFC liest den CommonStatusBlock aus und gibt die Information an den Ausgängen zurück

CALL SFC/FC 1009
BOARD  := 0 //INPUT BYTE
CHANNEL  := 0 //INPUT BYTE
RET_VAL  := MW 0 //RESULT INT
COMCOS  := MD 2 //OUTPUT DWORD
COMSTATE  := MD 6 //OUTPUT DWORD
COMERROR  := MD 10 //OUTPUT DWORD
SLAVESTATE  := MD 14 //OUTPUT DWORD
SLAVEERROR  := MD 18 //OUTPUT DWORD
SLAVECONF  := MD 22 //OUTPUT DWORD
SLAVEACTIVE  := MD 26 //OUTPUT DWORD
SLAVEFAULT  := MD 30 //OUTPUT DWORD

Message SFC

Mit Hilfe des Message SFCs können Telegramme zur cifX-Karte geschickt werden

CALL SFC/FC 1010
SEND  := 0 //INPUT BOOL
BOARD  := 0 //INPUT BYTE
CHANNEL  := 0 //INPUT BYTE
TIMEOUT  := 5 //INPUT DWORD
INDATA  := P#DB10.DBX0.0 BYTE 20 //INPUT ANY
OUTDATA  := P#DB0.DBX20.0 BYTE 20 //INPUT ANY
RET_VAL  := MW 0 //RESULT INT
BUSY  := M2.0 //OUTPUT BOOL
NDR  := M2.1 //OUTPUT BOOL
ERROR  := M2.2 //OUTPUT BOOL

SFC 14

Mittels des Bausteins DPRD_DAT können Daten aus dem cifX Dualport RAM gelesen werden

CALL SFC/FC 14
LADDR  := W#16#100 //INPUT WORD
RET_VAL  := MW 0 //RESULT INT
RECORD  := P#M 100.0 BYTE 1 //OUTPUT ANY

Parameter Datentyp Bedeutung
LADDR WORD Startadresse der zu lesenden Daten
RET_VAL INT 0 bei Erfolg
RECORD ANY ANY-Pointer auf gelesenen Daten


SFC 15

Mittels des Bausteins DPWR_DAT können Daten in den cifX Dualport RAM geschrieben werden

CALL SFC/FC 15
LADDR  := W#16#100 //INPUT WORD
RECORD  := P#M 102.0 BYTE 1 //INPUT ANY
RET_VAL  := MW 0 //RESULT INT

Parameter Datentyp Bedeutung
LADDR WORD Startadresse der zu schreibenden Daten
RECORD ANY ANY-Pointer auf zu schreibende Daten
RET_VAL INT 0 bei Erfolg