HMI P5xxx a příjem dat z RFID čtečky

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áTypPopis
$T:LINK_NAMETextNázev komunikační linky („Link1“)
$U:V201IntegerASCII kód oddělovače (0x0D = CR)
$U:V200IntegerIndikace, zda byla přijata data s oddělovačem
$U:V210IntegerDélka přijatého datového rámce
$U:V1000BufferDočasný buffer pro příjem dat
$U:V0BufferCílový buffer, kam se data ukládají
$T:RFID_INDICATORBit1 = data přijata, 0 = žádná data
$T:RFID_BUFFERBufferPřijatá data

Prvky GUI

Prvky editujeme dvojklikem, a nastavíme je takto:

Social tagging:

Comments are closed.