PNSPO
2.3 De RXDU instructie voor de Serial Communication Unit
Opmerking
TXD(u) en RXD(u) voor CJ1/CS1-PLC boards en units
Wanneer de RXDU instructie uitgevoerd wordt dan zal de inhoud van het
ontvangstbuffer verplaatst worden naar werkgeheugen in de PLC. Een goede manier
van werken is ervoor te zorgen dat de RXDU instructie uitgevoerd door de reception
completed flag. Op deze manier wordt automatisch elk binnenkomend bericht naar
werkgeheugen verplaatst. Als dan tegelijkertijd de Byteteller(number of received
bytes) gebruikt wordt in de RXDU instructie dan is het zeker dat het gehele bericht
verplaatst wordt en er geen restanten in het ontvangstbuffer achterblijven. Let er wel
op dat de data er tussen de 4 en 10 cycli over doet om van SCU naar CPU
gekopieerd te worden. Dit houdt in dat de Reception Completed Flag en number of
received bytes gereset zijn voordat de data in het werkgeheugen staat.
In het volgende voorbeeld zal getoond worden hoe onderstaand bericht
binnengehaald kan worden, het bericht is hex code:
30 | 31 | 32 | 33 | 0D
In ASCII code is het bericht: 0 1 2 3 + Carriage return.
De carriage return (0D) is de eindcode in dit bericht, deze eindcode wordt dan ook
ingevuld in de settings van de SCU.
In het voorbeeld wordt er uitgegaan van een SCU op unit #0 en gebruiken we poort 1
om te communiceren.
Het controlword van de RXDU is uitgebreider dan de RXD want nu zal naast de poort
de correcte kaart aangewezen moeten worden. Verder dient er een logic port number
opgegeven te worden (C+1 15..12). Dit is omdat de CPU maximaal acht
softwarepoorten tegelijk kan bedienen. Het heeft niets te maken met fysieke poorten.
Elke RXDU of TXDU die tegelijkertijd uitgevoerd kan worden dient een uniek nummer
te krijgen. Of u laat het de PLC uitzoeken en kiest u voor F (automatic allocation),
maar dan nog mogen er niet meer dan 8 RXDU of TXDU instructies tegelijk worden
uitgevoerd. U kunt A202.00...A202.07 gebruiken om te testen of softwarepoort 0...7 in
gebruik is.
Softwarepoorten worden niet alleen door RXDU en TXDU gebruikt. De volgende
instructies maken hier ook gebruik van: Send, Recv, Command, PMCR en Explicit
Messages. U dient er voor te zorgen dat deze elk een eigen nummer krijgen en
instructies met een gelijk nummer niet tegelijkertijd worden uitgevoerd. Verder kunnen
bovenstaande instructies ook in functieblokken voorkomen.
Data ontvangen
pagina 13