Your comments

Het komt niet echt uit per word, maar een word is gewoon 16 bools.

Je kan een word gewoon opsplitsen:

[0].0, [0].1, [0].2, ... [0].15 deze gelden dan als bools.


Ik denk dat je ook een array van bools kan maken maar dan moet je eens kijken hoe dat werkt :)

Michel:


Je hebt je outputs niet naar buiten gelinkt (met een AT%QB0 ofzo), ik zie ook dat je je variabelen hebt opgesplits in de 4 categorieën, maar ik gebruik er zelf maar 1 (om modbus adres 0 te gebruiken en omdat woord kan worden opgesplitst in 16 bools). Je kan de outputs manueel splitsen, maar zie ik het nut niet van in.


De commands en feedbacks in Iridium zijn ook afhankelijk van je beckhoff configuratie, als je index 0 gebruikt (AT %QB0) dan moet je in iridium ook beginnen met 0.


Dit is hoe ik het doe:


Je maakt een array aan in beckhoff:

outputs AT%QB0 : ARRAY [0..255]OF WORD ;


De grootte van de array maakt vrij weinig uit, het enige belangrijke is dat je %QB0 gebruikt omdat daar de modbus registers binnenkomen. (met index 0x8000 krijg ik het niet aan de praat) Zowel de in als uitputs komen in dit register en zowel bools als woorden. (dubbelwoorden is een ander verhaal, maar die gebruik ik nooit).


Je moet ook oppassen met je iridium variabelen. Deze benoemen is redelijk raar.

Hier zijn wat voorbeelden:


Een coil op adres 0 komt in outputs array uit op [0].0

Een coil op adres 15 komt in outputs array uit op [0].15

Een coil op adres 16 komt in outputs array uit op [1].0

Een coil op adres 130 komt in outputs array uit op [8].2

etc...


Maar dit is wel een beetje irritant als je een mix van holding registers(16) in de mix gooit dan :


Een holding register(16) op adres 0 komt in outputs array uit op [0]

Een holding register(16) op adres 1 komt in outputs array uit op [1]

Een holding register(16) op adres 12 komt in outputs array uit op [12]


Je kan ze niet uit elkaar houden op dezelfde range, moet je gewoon even rekening mee houden.


Als je wilt kan ik je een projectje op TC2 bezorgen met een iridium file en wat instructies. Dan zie je hoe het werkt.


Peter:


Ik krijg het spijtig genoeg bij TwinCAT 3 ook niet echt aan de praat.

En ik heb niet echt een methode om te monitoren wat er gaande is. Heb geen idee eigenlijk, en vrij weinig tijd om het te testen.


mvg,

Sven

Hey allemaal,


Ik heb al een paar keer Iridium gebruikt met Beckhoff PLC's (CX8090 en CX9020).


Voor Beckhoff PLC's op TwinCAT 2 moet je zeker zijn dat de PLC de TCModbusTCP driver hierop hebt staan. (Kan je met Cerhost en een FTP programma hier op zetten).

Voor TwinCAT 3 heb ik geen idee, maar het idee zal ongeveer hetzelfde zijn. (Gewoon bij beckhoff support vragen ivm licenses)


Het linken van de variabelen is niet zo ingewikkeld ookal is er niet veel documentatie van:

Het eerste dat je moet voorzien is een globale variabele genaamd outputs, deze moeten voorzien zijn als output array. Deze mogen niet met hardware gelinked worden, ze worden zuiver voor modbus TCP gebruikt.

Dit is eigenlijk de array waar Iridium meer communiceert (in beide richtingen).

Vergeet deze niet te activeren in u configuratie!


Het enige wat je dan te doen staat in een programma te schrijven dat deze globals gebruikt en niet vergeten het juiste IP adres in het Iridium programma te zetten.


Als er nog vragen zijn wil ik altijd wel helpen :)


mvg,

Sven