Profibusadressierung

Schreininski

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

bin gerade dabei eine Maschine in TwinCat zu programmieren. Stehe jetzt vor dem Problem, dass ich nicht weiß wie ich ein Pnozmulti über Profibus DP in mein Programm einbinden kann. Brauche ja irgendwie Adressen von dem Pnoz. Weiß aber nicht woher ich die bekommen kann. Hoffe das mir jemand helfen kann

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke habe das jetzt auch gefunden stellt sich mir das nächste Problem! Gibt es bei Twincat einen Baustein der mir ein Byte in acht Bits umwandelt oder muss ich mir sowas selber machen? Wenn ja wie?

gruß
 
Wie wäre es mit dem Bitoperator?

myByte.0 := TRUE; (* Setzt das erste Bit auf 1 *)


IF myByte.4 THEN
; (* Machwas wenn das fünfte Bit true ist *)
END_IF

PS: Meineswissensnach kannst Du aber in TwinCAT auch ein Byte und die einzelnen Bits für ein und den selben Bereich anlegen.
myByte AT %IB7 : BYTE;
myBit0 AT %IX7.0 : BOOL;
myBit1 AT %IX7.1 : BOOL;
usw....
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich war wohl ein bisschen zu voreilig. Habe ein ARRAY [0..7] of BOOL setze das erste ARRAY[0] auf ein BYTE. Jetzt will ich das BYTE umwandeln in acht Bits. Problem ich kann ja dem Array kein Byte, was schon mit z.B. AT%IB 7 zugewiesen ist, zuweisen. Wie mach ich das jetzt?

gruß
 
Ich dachte das hätte was mit dem Profibus zu tun und Du bekämst nur ein Byte rüber willst aber die einzelnen Bits abfragen.

Aber das mit dem Array ist was ganz anderes. Wenn Du eine normale Bool Variable (die nicht einer physikalischen Adresse zugeordnet ist) definierst nimmt diese min. 1 Byte in Anspruch.

Also ist Dein ARRAY [0..7] of BOOL acht Byte groß.

Was willst Du denn überhaupt machen? Erklär mal bitte auf was Du wie zugreifen möchtest.
 
Habe auf einem PNOZmulti verschiedene Eingänge die sollen auf ein Control Panel per Profibus gehen und dort in das TwinCat Programm eingebunden werden! Die Verbindung habe ich jetzt mal simuliert, weil ich das Programm noch nicht testen kann, da die Maschine noch im Umbau ist, die funktioniert auch soweit. Habe mir jetzt zum test das Eingangswort COM_PNOZMULTI_IN AT %IW100: ARRAY [0..19] OF USINT; angelegt und möchte jetzt dieses in Bits zerlegen, damit ich weiter programmieren kann.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
...
Habe mir jetzt zum test das Eingangswort COM_PNOZMULTI_IN AT %IW100: ARRAY [0..19] OF USINT; angelegt und möchte jetzt dieses in Bits zerlegen...

Ein Array mit 20 USINT ist doch 20 Byte groß, was hat das mit dem Wort zu tun?

Also Du kannst auf die Bits zugreifen in dem Du im Programm den Bit Operator verwendest.

COM_PNOZMULTI_IN.0
...
bis
...
COM_PNOZMULTI_IN.15

----
oder in dem Du das Eingangswort als Wort deklarierst und die Bit noch mal extra.

COM_PNOZMULTI_IN AT %IW100 : WORD;
COM_PNOZMULTI_Fritz AT %IX100.0 : BOOL;
COM_PNOZMULTI_Hans AT %IX100.1 : BOOL;
COM_PNOZMULTI_Paul AT %IX100.2 : BOOL;
....
usw.
 
Also das klappt auch nicht! Bekomme von meinem PNOZ 20 Byte für den Ausgang und 20 Byte für Eingang!

Die kann ich dann nur als Array[0..19] weiterverarbeiten und die wiederrum nur als ein merker z.B. Byte_1:BYTE;

Kann ich denn jetzt nicht irgendwie dieses Byte mit Hilfe eines Bausteines zerlegen, sodass ich mit den einzelnen Bits weiter arbeiten kann?

Steh glaub ich auf dem Schlauch habe auch schon das ganze Net abgesucht und nichts gefunden!

Gruß
 
Hast Du die Aufgabe schon gelöst?

Ich habe mal gerade einen Test mit CoDeSys gemacht (als Zielsystem habe ich die CoDeSys RTE verwendet) und da würde folgendes funktionieren:

Code:
VAR_GLOBAL
    Pilz        AT %IW100       : ARRAY [0..19] OF BYTE;
    Pilz_000    AT %IX100.0     : BOOL;
    Pilz_001    AT %IX100.1     : BOOL;
    Pilz_002    AT %IX100.2     : BOOL;
    Pilz_003    AT %IX100.3     : BOOL;
    Pilz_004    AT %IX100.4     : BOOL;
    Pilz_005    AT %IX100.5     : BOOL;
    Pilz_006    AT %IX100.6     : BOOL;
    Pilz_007    AT %IX100.7     : BOOL;
    Pilz_008    AT %IX100.8     : BOOL;
    Pilz_009    AT %IX100.9     : BOOL;
    Pilz_010    AT %IX100.10    : BOOL;
    Pilz_011    AT %IX100.11    : BOOL;
    Pilz_012    AT %IX100.12    : BOOL;
    Pilz_013    AT %IX100.13    : BOOL;
    Pilz_014    AT %IX100.14    : BOOL;
    Pilz_015    AT %IX100.15    : BOOL;
    Pilz_016    AT %IX100.16    : BOOL;
    Pilz_017    AT %IX100.17    : BOOL;
    Pilz_018    AT %IX100.18    : BOOL;
    Pilz_019    AT %IX100.19    : BOOL;
    Pilz_020    AT %IX100.20    : BOOL;
    Pilz_021    AT %IX100.21    : BOOL;
    Pilz_022    AT %IX100.22    : BOOL;
    Pilz_023    AT %IX100.23    : BOOL;
    Pilz_024    AT %IX100.24    : BOOL;
    Pilz_025    AT %IX100.25    : BOOL;
    Pilz_026    AT %IX100.26    : BOOL;
    Pilz_027    AT %IX100.27    : BOOL;
    Pilz_028    AT %IX100.28    : BOOL;
    Pilz_029    AT %IX100.29    : BOOL;
    Pilz_030    AT %IX100.30    : BOOL;
    Pilz_031    AT %IX100.31    : BOOL;
    Pilz_032    AT %IX100.32    : BOOL;
    Pilz_033    AT %IX100.33    : BOOL;
    Pilz_034    AT %IX100.34    : BOOL;
    Pilz_035    AT %IX100.35    : BOOL;
    Pilz_036    AT %IX100.36    : BOOL;
    Pilz_037    AT %IX100.37    : BOOL;
    Pilz_038    AT %IX100.38    : BOOL;
    Pilz_039    AT %IX100.39    : BOOL;
    Pilz_040    AT %IX100.40    : BOOL;
    Pilz_041    AT %IX100.41    : BOOL;
    Pilz_042    AT %IX100.42    : BOOL;
    Pilz_043    AT %IX100.43    : BOOL;
    Pilz_044    AT %IX100.44    : BOOL;
    Pilz_045    AT %IX100.45    : BOOL;
    Pilz_046    AT %IX100.46    : BOOL;
    Pilz_047    AT %IX100.47    : BOOL;
    Pilz_048    AT %IX100.48    : BOOL;
    Pilz_049    AT %IX100.49    : BOOL;
    Pilz_050    AT %IX100.50    : BOOL;
    Pilz_051    AT %IX100.51    : BOOL;
    Pilz_052    AT %IX100.52    : BOOL;
    Pilz_053    AT %IX100.53    : BOOL;
    Pilz_054    AT %IX100.54    : BOOL;
    Pilz_055    AT %IX100.55    : BOOL;
    Pilz_056    AT %IX100.56    : BOOL;
    Pilz_057    AT %IX100.57    : BOOL;
    Pilz_058    AT %IX100.58    : BOOL;
    Pilz_059    AT %IX100.59    : BOOL;
    Pilz_060    AT %IX100.60    : BOOL;
    Pilz_061    AT %IX100.61    : BOOL;
    Pilz_062    AT %IX100.62    : BOOL;
    Pilz_063    AT %IX100.63    : BOOL;
    Pilz_064    AT %IX100.64    : BOOL;
    Pilz_065    AT %IX100.65    : BOOL;
    Pilz_066    AT %IX100.66    : BOOL;
    Pilz_067    AT %IX100.67    : BOOL;
    Pilz_068    AT %IX100.68    : BOOL;
    Pilz_069    AT %IX100.69    : BOOL;
    Pilz_070    AT %IX100.70    : BOOL;
    Pilz_071    AT %IX100.71    : BOOL;
    Pilz_072    AT %IX100.72    : BOOL;
    Pilz_073    AT %IX100.73    : BOOL;
    Pilz_074    AT %IX100.74    : BOOL;
    Pilz_075    AT %IX100.75    : BOOL;
    Pilz_076    AT %IX100.76    : BOOL;
    Pilz_077    AT %IX100.77    : BOOL;
    Pilz_078    AT %IX100.78    : BOOL;
    Pilz_079    AT %IX100.79    : BOOL;
    Pilz_080    AT %IX100.80    : BOOL;
    Pilz_081    AT %IX100.81    : BOOL;
    Pilz_082    AT %IX100.82    : BOOL;
    Pilz_083    AT %IX100.83    : BOOL;
    Pilz_084    AT %IX100.84    : BOOL;
    Pilz_085    AT %IX100.85    : BOOL;
    Pilz_086    AT %IX100.86    : BOOL;
    Pilz_087    AT %IX100.87    : BOOL;
    Pilz_088    AT %IX100.88    : BOOL;
    Pilz_089    AT %IX100.89    : BOOL;
    Pilz_090    AT %IX100.90    : BOOL;
    Pilz_091    AT %IX100.91    : BOOL;
    Pilz_092    AT %IX100.92    : BOOL;
    Pilz_093    AT %IX100.93    : BOOL;
    Pilz_094    AT %IX100.94    : BOOL;
    Pilz_095    AT %IX100.95    : BOOL;
    Pilz_096    AT %IX100.96    : BOOL;
    Pilz_097    AT %IX100.97    : BOOL;
    Pilz_098    AT %IX100.98    : BOOL;
    Pilz_099    AT %IX100.99    : BOOL;
    Pilz_100    AT %IX100.100   : BOOL;
    Pilz_101    AT %IX100.101   : BOOL;
    Pilz_102    AT %IX100.102   : BOOL;
    Pilz_103    AT %IX100.103   : BOOL;
    Pilz_104    AT %IX100.104   : BOOL;
    Pilz_105    AT %IX100.105   : BOOL;
    Pilz_106    AT %IX100.106   : BOOL;
    Pilz_107    AT %IX100.107   : BOOL;
    Pilz_108    AT %IX100.108   : BOOL;
    Pilz_109    AT %IX100.109   : BOOL;
    Pilz_110    AT %IX100.110   : BOOL;
    Pilz_111    AT %IX100.111   : BOOL;
    Pilz_112    AT %IX100.112   : BOOL;
    Pilz_113    AT %IX100.113   : BOOL;
    Pilz_114    AT %IX100.114   : BOOL;
    Pilz_115    AT %IX100.115   : BOOL;
    Pilz_116    AT %IX100.116   : BOOL;
    Pilz_117    AT %IX100.117   : BOOL;
    Pilz_118    AT %IX100.118   : BOOL;
    Pilz_119    AT %IX100.119   : BOOL;
    Pilz_120    AT %IX100.120   : BOOL;
    Pilz_121    AT %IX100.121   : BOOL;
    Pilz_122    AT %IX100.122   : BOOL;
    Pilz_123    AT %IX100.123   : BOOL;
    Pilz_124    AT %IX100.124   : BOOL;
    Pilz_125    AT %IX100.125   : BOOL;
    Pilz_126    AT %IX100.126   : BOOL;
    Pilz_127    AT %IX100.127   : BOOL;
    Pilz_128    AT %IX100.128   : BOOL;
    Pilz_129    AT %IX100.129   : BOOL;
    Pilz_130    AT %IX100.130   : BOOL;
    Pilz_131    AT %IX100.131   : BOOL;
    Pilz_132    AT %IX100.132   : BOOL;
    Pilz_133    AT %IX100.133   : BOOL;
    Pilz_134    AT %IX100.134   : BOOL;
    Pilz_135    AT %IX100.135   : BOOL;
    Pilz_136    AT %IX100.136   : BOOL;
    Pilz_137    AT %IX100.137   : BOOL;
    Pilz_138    AT %IX100.138   : BOOL;
    Pilz_139    AT %IX100.139   : BOOL;
    Pilz_140    AT %IX100.140   : BOOL;
    Pilz_141    AT %IX100.141   : BOOL;
    Pilz_142    AT %IX100.142   : BOOL;
    Pilz_143    AT %IX100.143   : BOOL;
    Pilz_144    AT %IX100.144   : BOOL;
    Pilz_145    AT %IX100.145   : BOOL;
    Pilz_146    AT %IX100.146   : BOOL;
    Pilz_147    AT %IX100.147   : BOOL;
    Pilz_148    AT %IX100.148   : BOOL;
    Pilz_149    AT %IX100.149   : BOOL;
    Pilz_150    AT %IX100.150   : BOOL;
    Pilz_151    AT %IX100.151   : BOOL;
    Pilz_152    AT %IX100.152   : BOOL;
    Pilz_153    AT %IX100.153   : BOOL;
    Pilz_154    AT %IX100.154   : BOOL;
    Pilz_155    AT %IX100.155   : BOOL;
    Pilz_156    AT %IX100.156   : BOOL;
    Pilz_157    AT %IX100.157   : BOOL;
    Pilz_158    AT %IX100.158   : BOOL;
    Pilz_159    AT %IX100.159   : BOOL;
END_VAR
 
Zurück
Oben