Tento krátký návod popisuje, jak na panelech HMI série P5xxx přijímat data z RFID čtečky připojené přes sériové rozhraní, například Link1, pomocí skriptování v FvDesigner.
- Link1 musí být nakonfigurován jako
„User-defined Protocol Slave“ (viz Konfigurace propojení)
To znamená, že HMI bude čekat na data ze sériové linky, místo aby je aktivně odesílalo. - Formát dat z RFID čtečky je:
0123456<CR>kde<CR>(carriage return) značí konec zprávy.
Konfigurace propojení
V „Project Explorer“ klikneme na „Tag Library“ a nakonfigurejeme tagy „LINK_NAME“, „RFID_BUFFER“, „RFID_INDICATOR“
- RFID_BUFFER: obsahuje data po příjmu
- RFID_INDICATOR: nastaven na 1 po příjmu dat

Link1 vytvoříme přes kliknutí na „Link“ v záložce „Project Explorer“

Kliknutím na „Add“ přídáme Link1 a nakonfigurujeme následovně:

Vysvětlení kódu
Do editace kódu se dostaneme kliknutím na „Project Explorer“

Následně klikneme na „Script“

Pak pomocí „Edit“ se dostaneme k samotnému skriptu:

Níže uvedený skript zpracovává přijatá data a ukládá je do vnitřních proměnných HMI:
/*
Read data from "Link1". It must be set to "User*defined Protocol Slave"
Data format: 0123456<CR>
INPUT:
-
OUTPUT:
$T:RFID_BUFFER, $U:V0 ... received packet (type UNICODE Other)
$T:RFID_INDICATOR ... 1=data received
NOTE:
$U:V201 ... DELIMITER
$T:LINK_NAME ... "Link1"
$U:V200 ... 1=data with DELIMITER was received, 0=otherwise
$U:V210 ... length of stored data
$U:V1000 ... temporary buffer
*/
$T:LINK_NAME = "Link1"
$U:V201 = 0x0D /* CR */
$U:V200 = io_read3($T:LINK_NAME, $U:V1000, $U:V210, 500, $U:V201, 1)
if $U:V200 == 1
// Data with delimiter received to $U:V1000
memcpy($U:V0, $U:V1000, $U:V210) // memcpy(dst, src, len)
$T:RFID_INDICATOR = 1 // notification
endif
| Proměnná | Typ | Popis |
|---|---|---|
$T:LINK_NAME | Text | Název komunikační linky („Link1“) |
$U:V201 | Integer | ASCII kód oddělovače (0x0D = CR) |
$U:V200 | Integer | Indikace, zda byla přijata data s oddělovačem |
$U:V210 | Integer | Délka přijatého datového rámce |
$U:V1000 | Buffer | Dočasný buffer pro příjem dat |
$U:V0 | Buffer | Cílový buffer, kam se data ukládají |
$T:RFID_INDICATOR | Bit | 1 = data přijata, 0 = žádná data |
$T:RFID_BUFFER | Buffer | Přijatá data |
Prvky GUI
Prvky editujeme dvojklikem, a nastavíme je takto:





Nejnovější komentáře