Index >> Technická podpora, download.. >> Aplikační poznámky

AN23: Serial Tx Pause pro Eth/RS-232 konvertor

Aplikační příklad popisuje použití funkce vzdáleného pozastavení vysílání dat ze sériového rozhraní převodníků Ethernet na RS-232/485. Funkce je nutná pokud potřebujete posílat výstupní pakety dat po RS-232 v pevně definovaných paketech. Řídícími příkazy tak zajistíte potřebné časování na výstupu ze sériového portu převodníku.

Při odeslání řetězce znaků na vzdálený sériový port, připojený přes Ethernet se může paket cestou rozdělit na několik menších, nebo se může jeho část vysílat opakovaně a potom není dodrženo jeho časování na výstupu z RS-232 nebo RS-485.

Některá zařízení ovládaná po sériovém portu mohou být na časování přijímaných dat citlivá a aplikace potom nemusí fungovat. Tato zařízení sice nelze ovládat přes obecný Virtuální Sériový Port, ale je možné je ovládat speciální aplikací, která využívá možnosti ovládání časování vysílání ze vzdáleného sériového portu.

Dále uvedený popis platí pro uvedená zařízení a FirmWare verze 2.S a vyšší:

 

Dále popsané funkce je možné použít pouze za splnění těchto podmínek:

  • Komunikace probíhá po TCP/IP (T: IP mode TCP)
  • Modul má zapnutou podporu NVT příkazů (V: NetworkVirtualTerminal On)
  • Modul má zapnutou podporu VIRTUAL PARITY příkazů (&V: Variable Parity On)
  • Velikost výstupního paketu ze zériové linky (Serial Tx) je méně než cca 500 znaků (kapacita serial Tx Bufferu)

 

Formát ovládacích příkazů

Ovládací příkazy mají pevnou velikost 2 byty a využívají Virtuální Terminál (NVT) a funkce pro vzdálené ovládání parity (Variable Parity).

  • Stop Serial Tx - 0xFE 0x58
  • Run Serial Tx - 0xFF 0x58
  • Pause Serial Tx 10 ms - 0xFE 0x41
  • Pause Serial Tx 20 ms - 0xFE 0x42
  • Pause Serial Tx 50 ms - 0xFE 0x43
  • Pause Serial Tx 100 ms - 0xFE 0x44
  • Pause Serial Tx 200 ms - 0xFE 0x45

 

Pozor na znaky 0xFF a 0xFE

Protože jsou podporovány režimy "NVT" a "Variable Parity", je v datovém toku nutné respektovat znaky 0xFF a 0xFE jako prefix pro ovládání NVT (0xFF) a Variable Parity (0xFE). Z toho plyne, že pokud potřebujete na sériové rozhraní vyslat binární znak "0xFF", je třeba jej poslat po TCP/IP zdvojený.

Příklad: do TCP/IP posílám 5 bytů "0xFF 0xFF 0x41 0xFE 0xFE", ale z modulu Charon jsou odeslány pouze 3 znaky "0xFF 0x41 0xFE". Pokud znaky FF a FE nezdvojíte, budou zpracovány v závislosti na následujících znacích jako ovládací příkazy!

 

Vzdálené ovládání parity - 9. bitová komunikace

Režim "Variable Parity" je primárně určen pro vzdálené ovládání polarity parity 9. paritního bitu pro zařízení, která používají pro komunikaci 9. bit.

Pro vzdálené ovládání parity lze použít 2 způsoby:

  • Změna nastavení parametrů vzdáleného sériového portu pomocí NVT
    Tento způsob je nešikovný a hlavně nezaručuje synchronnost změny parametrů, protože zmena nastavení se provádí časově nezávisle na datech vysílaných ze sériového portu.
  • Změna nastavení parity pro jeden následující znak pomocí "Variable Parity"
    Pro jeden znak následující za příkazem otočí polaritu paritního bitu proti hlavnímu nastavení.

Pokud je tedy povolen režim VIRTUAL PARITY (&V: Variable Parity On), změníte (negujete) paritu jednomu následujícímu znaku, pokud před něj vložíte 2 bytovou sekvenci sekvenci 0xFE 0x50.

 

Příklad použití "Serial Tx delay"

Pro test byl použit modul Charon 1 ve vývojovém kitu "Charon 1 DK" s nastavením:

******* WEB51 remote setup ******
*** HW-group.com HW 6.0 SW 2.S #01 ***
*** PortBox I/O ***
MAC Address 00:0A:59:00:9D:AF
=========== IP Setup ============
I: Address 192.168.1.24
J: Port 23
M: Mask 255.255.255.0
G: Gateway 192.168.0.1
===== In IP access filter ======
W: Address 0.0.0.0
N: Mask 0.0.0.0
X: Port 0.0
Y: Port Mask 0.0
== Active (Client/Server) mode ==
S: Send to IP PASSIVE mode
U: Port 23
T: IP mode TCP
V: NetworkVirtualTerminal On
K: Keep connection Off
E: Erase buffer on None

========= Serial Setup ==========
&B: Speed 9600
&D: Data bits 8
&P: Parity NONE
&V: Variable Parity On
&S: Stop bits 1
&C: Flow Control NONE
&R: RS485/RS422 control RTS = On [+8V]
&T: Serial Line Timeout 0 - Off
&G: Char. Transmit Delay 0 - Off
&H: Tx Control Tx FULL duplex
======== Security Setup =========
%A: TCP autorisation Off
%K: TEA key 0:01:02:03:04 1:05:06:07:08 2:09:0A:0B:0C 3:0D:0E:0F:10
%S: TCP/IP setup On
======= I/O Control Setup =======
#T: Trigger AND mask 255
#A: Power Up INIT 189
#B: Power Up AND mask 255
#C: Power Up OR mask 0
#D: Power Up XOR mask 0
#X: KEEP mask 0
#Y: AND mask 255
#Z: OR mask 0
#W: XOR mask 0
============ Other ============
D: Load/Save Settings from/to Flash
R: Reboot

WEB51>

 

Na obrázku (zde je screenshot v originálním rozlišení) můžete vidět časový průběh 3 různých maker, odeslaných z programu Hercules přes TCP spojení sériového portu.

Click for big screenshot

  • Macro 1 - "123456"
    Od spuštění programu SAL232 do přijetí zprávy "123456" uplynulo 30 sekund a 415 ms, což je vypnáno na prvním řádku před řetězcem "123456", který byl přijat v celku.
  • Macro 2 - "1$FE$442$FE$443$FE$444$FE$445$FE$446"
    Mezi přijetím předchozí zprávy "123456" a znaku "1" uplynulo 918 ms (čas pro kliknutí na tlačítko druhého makra), ale mezi jednotlivými čísly je zde zcela zřetelná mezera cca 100 ms. Drobné odchylky jsou dány použitím časovače operačního systému Windows, který má reálnou přesnost cca 10 ms.
  • Macro 3 - "U$FE$45V$FE$45W$FE$45X$FE$45Y$FE$45Z"
    Mezi přijetím předchozí zprávy "6" a znaku "U" uplynulo 1054 ms (čas pro kliknutí na tlačítko třetího makra), ale mezi jednotlivými písmeny je zde zcela zřetelná mezera cca 200 ms. Drobné odchylky jsou opět dány použitím časovače operačního systému Windows, který má reálnou přesnost cca 10 ms.

 

DOWNLOAD & Odkazy

 

Související produkty a odkazy

  • Ostatní "Aplikační poznámky"
  • Charon1
  • I/O Controller
    I/O Controller je jednotka připojená do sítě Ethernet, obsluhující 8x binární vstup, 8x binární výstup a sériové rozhraní RS-232/485. Všechna rozhraní jsou přístupná po počítačové síti pomocí M2M protokolu na TCP/IP.