Tak write on change dělá přesně to co potřebuji.
Proměnnou lze modifikovat z druhého místa, ale sesynchronizuje se zpět, když se změní stav logiky v FBD.
Píšu pro případ, kdyby se to někomu také hodilo, protože v dokumentaci o tom není ani píp.
Tak write on change dělá přesně to co potřebuji.
Proměnnou lze modifikovat z druhého místa, ale sesynchronizuje se zpět, když se změní stav logiky v FBD.
Píšu pro případ, kdyby se to někomu také hodilo, protože v dokumentaci o tom není ani píp.
Dobrý den,
Pro spínání světel v domě z více tlačítek (tlačítka jsou na modbus sběrnici a mají vlastní paměť a chovají se jako stiskem zapni, stiskem vypni) používám XOR mezi proměnnými.

Potřeboval bych tu výslednou hodnotu číst a měnit ze vzdáleného místa přes SSCP.
Napadá mě, že by se na to hodilo definovat ji jako write on change, ale nikde v dokumentaci nevidím přesnou definici chování write on change, abych pochopil, zda to je aplikovatelné.
Nebo mi nezbyde nic jiného než mít dvě proměnné? Jednu k zobrazení a druhou přidat jako další vstup do toho XORu.
Díky za pomoc
Pro ty koho by to také zajímalo, zkouším https://github.com/cervenyxp/hass_sscp_integration
Zatím to oťukávám, ještě žádné konkrétní výsledky. Nejprve musím přijít na to jak to celé efektivně "architektovat".
Dobrý den
Dnes 3.7.2025 se mi objevilo místo rozhraní prohlížení databáze, že jsem si měl do 30.6 koupit mervis scada a že jsem si měl do daného datumu stáhnout data jinam.
Jenomže, co mám dělat, když mi ta informace byla sdělena až teď?
Nevím jestli mi nějaký e-mail spadnul do spamu, nebo co, to je jedno.
To to nemohlo být vidět v rozhraní DB? Tam jsem se díval obden. Ještě předevčírem jsem tam přidával nové proměnné ...
Potřebuji ta data.
Scada nepoužívám, a nechci používat, nechci platit (bratr, majitel domu řízeného vašimi PLC, také nechce).
Tohle je zatím největší kudla do zad od unipi.
Jsem opravdu rozčílený.
Zdravím,
postavil jsem řízení domu na dvou unipi jednotkách. Dělá to jen logiku, PID regulaci a pod, časových plánů je tam minimum. Uživatel interaguje jen tlačítky na modbus rtu sběrnici.
Chtěl bych tomu přidat uživatelský komfort, automatizaci podle počasí a podobně, pomocí Home Assistant.
Zatím ale nevím jaká je nejlepší cesta s propojením.
Modbus TCP je možnost, ale je třeba ručně vyplnit tabulky datových bodů. Toho je ale už hoooodně. Uvítal bych nějaký automatický export a import.
Máte někdo zkušenost, jak takovou věc co nejrychleji a nejsprávněji provést?
Díky
Jakub
@cleve
OK, díky, myslel jsem si to, že EN bude ta cesta, ale chtěl jsem se ujistit.
@cleve said in chyba komunikace s Unipi Extension xS51:
@ladmanj
Dobrý den,
teplý restart je možné provést zavoláním funkce reloadapplication s parametrem flags (příznaky restartu, 1 - cold restart, jinak warm). Funkci je možné přidat pravým tlačítkem nebo zavolat z ST.
Omlouvám se, ale není mi jasné jak se ve FBD zavolá ta funkce reloadapplication (nedokumentovaná) tak, aby se restart provedl jen při true boolean proměnné. Kdyby flag 0 byl "žádná akce", 1 "warm restart", 2 "cold restart", tak bych věděl, ale když 1 je cold a vše ostatní je warm restart, tak nějak nevím co dělat.
Chápu že je to míněno tak, že v takovém případě se funkce vůbec nemá volat, ale já nevím jak takovou věc ve fbd nakreslit. Pokud to nepůjde, pokusím se to nadatlovat v ST, ale zatím ho stále neovládám. Dokážu C, C++, python, pascal, assembler pro různé platformy, Verilog, tak se nakonec zvládnu i ST. Zatím mi ale způsobuje nevolnost.
@cleve said in chyba komunikace s Unipi Extension xS51:
Softwarové řešení hw problému není snadné. Můžete zkusit detekovat chybu linky pomocí její proměnné
commerrora následně zkusit restartovat extension nebo IO desku Neurona pomocí proměnnýchreboot.
V tom máte jistě pravdu. Napájení i celkové zapojení je provedeno pečlivě. Nicméně chybu nelze vyloučit v žádném případě.
Komunikace běží na 57600 8N1. Sběrnice je dlouhá cca 5m, na obou koncích zakončená. Na neuronu je zapnut příslušný DIP switch, na opačném konci je 120R rezistor.
Na sběrnici je kromě neurona unipi extension modul a jedno zařízení mé vlastní konstrukce, které interně používá libmodbus.
Použitý kabel je https://www.jablotron.com/cz/produkt/kabel-sbernice-2x20awg-2x24awg-676/
Obě zařízení jsou tímto kabelem také napájená.
Potenciálně problematické je, že v mém vlastním modulu je vzduchový kompresorek s kartáčovým stejnosměrným motorem, ale ten je napájen z (analogového) regulátoru proudu a běží se zlomkem jmenovitého proudu a taktéž se nekoná standardní rozběhová proudová špička.
Ano připouštím, že moje zařízení může teoreticky něco ošlivého poslat do sběrnice. Ano připouštím, že moje zařízení se může "rozhodnout", že do sběrnice bude už navěky bez přestání vysílat a pak komunikace zdechne.
Jenže, jak je v takovém případě možné, že pomůže pokaždé teplý restart mervisu?
Nerestartuje se linux ani nic jiného. Nevypíná se napájení sběrnice.
Mimochodem: už k tomu opět došlo a to i po updatu firmwaru v neuronu. V extension jsem fw ještě neupdatoval. Z bezpečnostních důvodů to nechci dělat přes ssh na dálku.
Díky za případné další informace.
Díky, vyzkouším uvedené rady. Firmware jsem od nákupu neuronů neupdatoval, tak v tom vidím naději. Ty proměnné k detekci chyby také považuji za dobré nasměrování.
Opravdu pro mě nemáte žádnou odpověď?
Teď jsem zařízení našel ve stejném stavu. Neuron ukazoval v ladění proměnné červeně a neměnné.
Po teplém startu vše běží.
Není možné komunikaci (s Extension xS51) nějak hlídat a vyvolat teplý restart, pokud se zastaví?
Díky
Dobrý den,
Mám Unipi Extension xS51 připojený k Neuron S103 asi pěti metry kabelu.
RS-485 je na obou koncích řádně zakončena.
Na sběrnici je ještě jedno zařízení mojí vlastní konstrukce.
Po čtvrt roce bezproblémového provozu se komunikace zastavila a výstupy zůstaly viset na konstantních hodnotách.
Je mi známo, že extension samotný má v dokumentaci uvedenu nějakou watchdog funkci, ale pro tentokrát bych rád řešil stranu kontroléru.
Jsem od instalace daleko, ale když jsem po několika dnech zaznamenal, že se děje něco divného, Neuron jsem restartoval a vše se plně rozběhlo.
Lze nějak hlídat komunikaci/obnovování vstupů a v případě problému to nějak reinicializovat, nebo komplet restartovat automaticky?
Děkuji
Díky po drobné úpravě to funguje:

Stejně si myslím, že je škoda, že se nedá z modbusu rovnou načíst správně, ale to už "přežiju".
JL
@zdenek_rusek
Dobrý den,
Bohužel ani jeden z navrhovaných bloků neposkytuje to co je třeba.

Chápu-li definici datového typu DT správně, je to právě UNIX čas, tedy počet sekund od 1.1.1970, ale chybí mi legální "cast" mezi UDINT a DT.
Nejlepší by bylo, kdyby se v definici modbus registrů dalo nastavit, že data jsou typu DT a hotovo. Problém by byl vyřešem. Ale tato možnost v IDE není, a když to změním ruční editací XML souboru (definice_modbus.hw) a naimportuju, tak to tam sice ve formátu DT je, ale data jsou chybná.
Obávám se že to bude chtít bugfix od energocentra ... :-(
S pozdravem
Jakub Ladman
Dobrý den
Dokážete mi poradit jak načíst 32 bitů, které nesou datum a čas v unix formátu, který je podle dokumentace kompatibilní s typem DT z modbus registrů?
Mám dva modbus registry, které dohromady tvoří 32 bitů. Dokážu je načíst jako UDINT, nebo DWORD, ale transformaci na DT nenacházím.
Nenacházím ani knihovní blok UDINT_TO_DT, nebo DWORD_TO_DT.
Vůbec už nevím co s tím dělat.
Děkuji za pomoc
Dobrý den,
není to přesně to, co jsem hledal, ale zaujalo mě to. Jen mi není jasné co přesně se tam děje.
Pokud je měřená venkovní teplota menší, než uživatelem nebo správcem systému zadaná hodnota reqTemp_HC1, pak se použije tato hodnota místo údaje z vnějšího čidla?
Předpokládám, že by se spíš mělo být možné použít jinou křivku a tu výjimku nedělat. Nicméně jistou inspirací to je.
Předběžně jsem se rozhodl začít se standardním PID/PI kontrolérem.
Ona se ta teplota vstupní vody nebude měnit tak rychle aby si to bez kompenzace neporadilo.
Co se týká složitějšího řešení pro možné nasazení v budoucnosti, začal jsem si hrát s implementací přenosové funkce pomocí StateSpace v diskrétním čase (v Z-doméně) v jazyce ST.
Něco už to dělá, ale k nasazení v reálu to má hodně daleko.
Dobrý den
Rád bych pomocí Neuronu a extension xS51 řídil regulaci teploty v podlahovém topení. Na vstupu máme nádrž s 2000l teplé vody, natopené na jeden až několik dnů dopředu kotlem. Kotel si teplotu ve dvou hladinách hlídá sám, zapaluje se a zhasíná podle dvou teplotních čidel.
Teplota na vrchu nádrže bude oscilovat.
Rád bych řídil trojcestný ventil (vstup 0-10V) PID regulátorem podle venkovní teploty přes ekvitermní křivku, ale rád bych také hodnotu kompenzoval podle teploty vody na vrchu nádrže.
Dle klasické regulace, třeba v simulinku, bych použil feedforward chybové veličiny, což by byl asi rozdíl aktuální teploty na vrchu nádrže oproti její střední hodnotě.
Ať hledám, jak hledám, nenacházím v knihovně vhodné bloky, kterými bych takovou funkci v mervisu realizoval.
Dokážete mě vhodně nasměrovat?
Existuje nějaký příklad, který by řešil podobný systém? Byť třeba jinak, než je náš dosavadní úmysl?
Díky
JL
Vážení,
Oceňuji možnost ladit si programy bez nahrání do PLC pomocí windows RT.
10x více bych to ocenil, kdyby se běh nezastavil po ~20 minutách.
100x více by to ocenil, pokud bych RT mohl spustit na linuxu.
Je možné získat za rozumný peníz příslušnou licenci?
Děkuji za odpověď.
Jakub Ladman
Dobrý den
O co se nemusím starat doku nepřepnu Solution ze Simple Mode do Full Mode?
Respektive o co se po přepnutí do Full Mode starat musím?
Některé úpravy ve Full Mode mi nefungují, přestože jsem je (snad) dělal stejně jako před přepnutím.
Máte k tomu někde kapitolu v dokumentaci?
Nenacházím ...
Děkuji srdečně
Hello,
I have system controlling an smart house (not so smart, on purpose).
The control logic evolved as I learned the mervis capabilities and as the house being completed.
Now it is in state that everything is basically working and there is need to slowly append more advanced functions (but still not what different people mean, if they talk about smart home).
The whole control is one huge schematic page with possibly 100 inputs and 100 outputs.
I would like to break it to several independent sheets which will be more readable and manageable.
I have tried two methods
a) make copies of the original schematic (called main) and then delete different parts from different sheets.
b) making new sheets (new program fbd type) and then cutting parts from main page and pasting to the new ones.
But it seems, that the new sheets don't run.
I think that as I'm not in simple mode anymore, something is not created automatically, but I don't know what.
... And also, when I started new solution in simple mode, I was able to display values in web hmi, but when switched to advanced mode, the newly added variables aren't propagating to the graphical endpoints as expected.
Can you point me to a particular place in documentation which will help me with that?
(English or Czech, that doesn't matter)
Thank you very much
Thank you for your answer, even it was not what I expected.
The library of functions seems to be rather limited.