S7-300 - formát DATE (2bytes)

Toto je hlavní technické fórum pro diskusi o problémech při vytváření PROMOTIC aplikací a jejich řešení.

S7-300 - formát DATE (2bytes)

Postby Vlastimil Liml » Wed 17. Jul 2019 19:21:26

Dobrý den,
potřeboval bych poradit, jakým způsobem korektně zobrazit datum získané z PLC S7-300 (Sinumerik 840DSl + ovladač PmS7-ethernet), které je uloženo v DB ve formátu DATE. (viz.obrázek)
Používám Promotic 8.3.30 a "Datové rozšíření ExtComm / ItemID - PmS7 / Datový typ v PLC" takovou možnost nenabízí. Pokud hodnotu čtu jako word (volba W = Unsigned word),
zobrazí se číslo, které odpovídá počtu dnů od 1.1.1990, takže např. 4.6.2018 má hodnotu 10381. Toto číslo potřebuji převést na datum a zobrazit v obraze (i pro web).
Děkuji
Attachments
DATE_2B.jpg
DATE_2B.jpg (79.25 KiB) Viewed 513 times
Vlastimil Liml
 
Posts: 1
Joined: Wed 17. Jul 2019 18:15:16

Re: S7-300 - formát DATE (2bytes)

Postby Petr Návrat » Fri 19. Jul 2019 8:01:16

Dobrý den

Datový typ který zmiňujete ovladač PmS7 nepodporuje (zatím, mohli bychom to tam dodělat, ale až v nových verzích Promotic 9).

To co potřebujete lze provést i ve verzi Pm8.3 následovně:

Správně čtete hodnotu jako World.
Získané číslo pak musíte převést skriptem na Date:

Dim MyWord, MyDate
MyWord = pMe.Pm("/PmComm/Data/#vars/xxx")
MyDate = Pm.DateAdd("d", MyWord, Pm.CreateDate(1990, 1, 1, 0, 0, 0, 0))

Proměnnou MyDate pak můžete uložit do proměnné objektu PmData a v obraze to pak zobrazovat.

viz metoda Pm.DateAdd: https://www.promotic.eu/cz/pmdoc/Object ... ateAdd.htm

Petr Návrat, navrat@microsys.cz
Petr Návrat
Administrátor
 
Posts: 51
Joined: Thu 13. Dec 2012 14:32:08


Return to Nevím jak...

Who is online

Users browsing this forum: No registered users and 0 guests

cron