Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Příklad na komunikaci přes RACOM radiomodemy přes "UDP Sockety bez Pm hlavičky"

Příklad je umístěn ve složce: /Pm/Examples/Commun/Socket_Racom.

Příklad slouží jako ukázka Socket (Ethernet) komunikace přes zařízení: Morse Aplikační Server (MAS) protokolem MORSE od firmy RACOM.

Z hlediska systému PROMOTIC je to příklad na komunikaci přes sokety typu UDP bez PROMOTIC hlavičky. Z hlediska aplikace je to příklad na přenos dat v Modbus podobě. Tato data koncové RACOM zařízení převádí na sériovou linku a komunikuje s PLC například typu Modicon. Obecný popis Socket komunikace viz Přenos dat v síti přes Sockety.

 
PC na kterém běží Promotic aplikace muselo mít nastavenou TCP/IP adresu na hodnotu 192.168.100.32. TCP/IP adresa MAS serveru byla 192.168.100.7.
 
Popis aplikace: Celý příklad je vytvořen v objektu "SocketRacom". Jediná věc, kterou je důležité nastavit mimo tento objekt je nastavení v objektu PmRoot v záložce Sokety. Zde je potřeba nakonfigurovat dvě soket skupiny:
 
1.serverová soket skupina:
Jméno: racom_server (může být i jiné)
Číslo portu: 8888 (může být i jiné, závisí na nastavení MAS)
2.klientská soket skupina:
Jméno: racom_client (může být i jiné)
Sítová adresa serveru: závisí na nastavení MAS (127.0.0.1 je adresa lokálního PC)
Číslo portu: 8888 (může být i jiné, závisí na nastavení MAS)

a zatrhnout položku Sokety povoleny.

 
Obraz Main objekt typu PmPanel:

V tomto objektu jsou tlačítka (typu PmiButton), ze kterých v události onButtonUp je volána metoda Start objektu SocketRacom. Tato metoda přenáší zprávy pro objekty Data_ReadFce3Data_WriteFce6.

 
V objektu "SocketRacom" jsou objekty:
- Data_ReadFce3: objekt typu PmFolder. Tento objekt realizuje přenos Modbus zprávy typu 03-Read Holding Registers (Read Output Registers). Je to vyžádání si příjmu dat z PLC registrů. Protože daný přenos se skládá z vyslání (send) a příjmu (recv) jsou v tomto objektu 2 objekty PmData.
- Data_WriteFce5: objekt typu PmFolder. Tento objekt realizuje přenos Modbus zprávy typu 05-Force Single Coil (Write 1 Bit). Je to zaslání dat na PLC výstupy. Opět se skládá ze 2 objektů typu PmData.
- Data_WriteFce6: objekt typu PmFolder. Tento objekt realizuje přenos Modbus zprávy typu 06-Preset Single Register (Write 1 Register). Je to zaslání dat do PLC registrů. Opět se skládá ze 2 objektů typu PmData.
- Data_Zmeny: objekt typu PmData. Tento objekt přijímá nevyžádaná (změnová) data. Je to podobné jako u Data_ReadFce3 ale nemusí se posílat žádost.
- Data_Error: objekt typu PmData. Tento objekt přijímá jakékoli data, která nikdo nechce. Při správném režimu by data do tohoto objektu neměla chodit.
- Data_Par: objekt typu PmData. V datu MAS_IPAddr je IPadresa MAS serveru. V tomto příkladě je tam hodnota: 192.168.100.7.
- Timeout: objekt typu PmSequencer. Tento objekt zajištuje kontrolu prodlevy mezi příjmem a vysláním dané zprávy, tzn. mezi posláním dat objektem Send a příjmem dat do objektu Recv. Pokud do objektu Recv do 10 sekund nepříjde odpověď, vyvolá se událost onStep.
 
Důležité skripty:

V objektu SocketRacom jsou metody (viz založka "Metody"):

- Start: Metoda je volána z tlačítek obrazu Main (typu PmPanel) a spouští metodu StartSend vnořených objektů PmFolder.
- DataAfterRecv: Tato metoda se vyvolá vždy po příjmu jakékoli zprávy. Tato metoda je volána v událostech onEndOfTransfer datových objektů které příjímají.
- DataAfterSend: Tato metoda se vyvolá vždy po zaslání jakékoli zprávy. Tato metoda je volána v událostech onEndOfTransfer datových objektů které zasílají.
- OnError: Tato metoda se vyvolá vždy po jakékoli komunikační chybě.
 
Tvar dat v objektech PmData:

Zařízení MAS komunikuje přes UDP sokety a je přesně stanoveno, jak má vypadat tvar zprávy. Pro tuto komunikaci tedy nelze použít standardní Promotic sokety, neboť tyto do dat přidávají Promotic hlavičku. V konfiguraci soketových skupin je proto nutno vybrat typ protokolu - Omezená délka dat bez PROMOTIC hlavičky

Pak data, která jsou nastavena v objektu PmData se přes sokety vyšlou přesně v takové podobě, v jaké je nastavil projektant. Jedinou výjimkou je, že data typu Integer a Long se vysílají v obráceném bajtovém pořadí než jak je zvykem na platformě PC. V tomto příkladě nám to však vyhovuje, protože přesně to vyžaduje protokol MORSE i protokol Modbus.

 
V objektech PmData napojena na SocketKlient skupinu musí data pro MORSE komunikaci vypadat následovně: 1.položka
- název: MORSE_flag
- datový typ: Integer (2 bajty)
- hodnota: vždy 0
- význam: MORSE systémové bity
2.položka
- název: MORSE_PT
- datový typ: Byte (1 bajt)
- hodnota: vždy 9
- význam: MORSE packet type
3.položka:
- název: MORSE_DRNo
- datový typ: Byte (1 bajt)
- hodnota: součet h1 + h2
h1: pro směr Promotic->MAS vždy 0, jinak vždy 128
h2: hodnota 0-8 využitelné například jako pořadové číslo paketu.
- význam: Směr zprávy a pořadové číslo
4.položka:
- název: MORSE_addr
- datový typ: Long (4 bajt)
- hodnota: číslo dodané správcem dané RACOM sítě
- význam: MORSE adresa cílové stanice
 
a další položky jsou již přenášená data
 
V objektech PmData napojena na SocketServer skupinu musí data vypadat následovně:
- První tři položky jsou Promotic systémové a určují která data bude daný objekt přijímat (viz Přenos dat v síti přes Sockety).
- Další položky jsou pak již stejné jako u klient dat.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice