henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Voor een nieuw projectje eens een Weintek cMTX2078 demo kitje aangeschaft om dat eens te bekijken hoe dat werkt.
Heeft iemand een idee hoe ik een verbinding maak met een HX-RIO3 PLC (via ethernet)?
Ik kan alleen maar een EH en EHV serie kiezen. Is er een andere driver die ik kan kiezen om het werkend te krijgen?
Net pas mee begonnen en nooit met easybuilder pro gewerkt dus ik ben nog wel even zoet om uit te vinden hoe hier alles werkt.
Ik heb de PLC niet hier dus kan het nog niet uitproberen of de EHV(Ethernet) driver misschien werkt.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
ik ben er denk ik al uit: Ik kan de Codesys V3 Ethernet driver gebruiken om te connecten naar mijn PLC.
Leuk en topkwaliteit scherm voor heel weinig geld, daar kan Siemens nog van leren.
Ook uniek: bij Weintek kun je het complete project uploaden van het scherm naar je PC.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Helaas de codesys v3 driver werkt niet zoals het hoort.
Ik kan de tags niet fatsoenlijk importeren. Ik mis vanalles en heb er nog geen structuur in gezien wat er precies mis is.
-edit-
Ondertussen ben ik erachter dat geen enkele REAL in codesys ge-importeerd kan worden in het paneel.
Als ik echter een struct definieer waar 1 REAL in zit (+ nog wat anders of zelfs niks) dan zie ik de tag WEL in Easy Builder Pro.
Dus een variable (in CodeSys) zo declareren werkt NIET (wordt niet geimporteerd):
gewicht : REAL;
Dan een variable via een omweg in een struct zetten werkt WEL:
TYPE value_real_t :
STRUCT
value : REAL;
END_STRUCT
END_TYPE
Dan in een global variable list (bijvoorbeeld GVL):
gewicht : value_real_t;
Dan als volgt assignen:
gewicht.value := 100.0;
In het paneel is die dan als GVL.gewicht.value te vinden.
Rara waarom werkt de eerste variant niet?
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Het probleem is er nu ook voor BOOL variablen. Ook niet aan de praat te krijgen.
Het lijkt wel of alleen de eerste file die ooit geimporteerd is "blijft hangen" met de symbols die "plat" in de file staan.
Lijkt wel een modbusdriver die alleen integers kent. Of zit het probleem het in het importeren? Wat als je gewoon zelf in het scherm de variable probeert te gebruiken? Ik gebruik vaak ook de user tags gewoon niet.
[Bericht gewijzigd door GJ_ op (12%)]
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Als ik variablen in een struct zet werkt het wel.
Ik heb geen idee wat voor protocol over de eth kabel gaat. Ik heb de codesys v3 driver gebruikt.
Het probleem zit echt in de import.
[Bericht gewijzigd door henri62 op (12%)]
Nou, niet importeren dan Oei, dat werkt niet bij de codesys drivers. Je hebt wel de juiste toch?
Gewoon in het scherm direct naar de adressen in de PLC verwijzen, net zo gemakkelijk.
[Bericht gewijzigd door GJ_ op (26%)]
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Dat idee had ik ook: Met de hand, maar dat krijg ik dus niet voor elkaar. Bekend probleem dus.
Maar hoe weet ik welke driver de goede is?
Ik heb van EBpro de laatste versie, gisteren gechecked.
De rio3 vandaag ook updated, maar dat heeft er niks mee te maken.
Waar ik ook tegenaan loop is dat de rio3 zich ophangt als ik mijn laptop en het paneel er tegelijk aan hang. Dat is helemaal r*k! Zo kan ik niks debuggen. Ik moet de plc powercyclen om dat weer op te lossen.
Dat is ^%$@$#@ ook bizar, een PLC die zich ophangt omdat er een programmer word aangesloten.
Er is maar één Codesys V3 driver geloof ik. Misschien proberen met de Beckhoff driver.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Zonder panel hangt de RIO3-(CP2MBTL) ook soms. Ik ben er nog niet achter onder welke conditie, het lijkt als je de kabel in/uit-plugged of als er een packet corrupt is over de ethernet kabel. Geen idee nog.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Nog even voor de compleetheid als iemand er tegen aan loopt.
Het ophangen van de PLC wordt veroorzaakt door de UDP pakketten van de Weintek die zo de tags uitleest en is een bug in de RIO PLC.
Dat is "redelijk" op te lossen door in de Weintek het protocol op TCP te zetten.
Nog steeds werkt het niet helemaal lekker. Tegelijk ingelogd op codesys en tegelijk een project uploaden crashed de boel nog steeds.
De tip kwam van Hiflex om dat eens te proberen.
Vandaag weer eens na maanden een aantal dingen erbij gebouwd en iets moeten doen aan dat project.
Nu zouden ze daar wat in opgelost hebben bij Hitachi afgelopen december in firmware V3.007. Vandaag dus de PLC firmware updated. Maar helaas het werkt nog niet helemaal.
Nu werkt het debuggen & uploaden wel tegelijk en loopt de boel niet meer vast.
Maar .... als je het Weintek HMI display weer op UDP als protocol zet loopt de boel nog steeds vast. Complete hangup, powercycle noodzakelijk.
Ik ga dit probleem nog even terug rapporteren zodat ze nog verder kunnen zoeken.
============ Maar nu wat anders. ================
Ik ben in de Weintek met recipes aan de slag gegaan, nou niet aan de praat te krijgen, ik snap de constructie niet hoe je uiteindelijk de gekozen recipe-line activeeert in de PLC zelf.
Ik dan dus wel regels toevoegen, deleten, updaten in de recipe database.
Maar ik heb geen idee hoe ik de data in mijn PLC krijg. Zou met een data transfer trigger moeten maar dat werkt ook niet.
Heeft iemand een idee of, nog mooier, een voorbeeld?
-edit- Ik gebruik Easybuilder Pro V6.09.01.485 Daar zitten al de commando's in voor de recipes in text vorm ipv dat je zelf magic codes moet sturen.
Nu even geen tijd, maar ik gebruik die recepten geregeld. Ik zoek als ik tijd heb een voorbeeld. Zal wel met Vipa/Siemens worden, maar dat maakt geen verschil.
EDIT: geen Vipa/Siemens maar een M700. Maakt verder ook geen verschil.
[Bericht gewijzigd door GJ_ op (19%)]
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Deze file kan ik niet openen, het is een compiled project en het lijkt erop dat ik die niet kan decompilen? Laat maar, is toch gelukt. Ik ga even kijken hoe je dat gedaan hebt.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Ik heb nu pas de truuk door hoe het werkt, voor diegene die er ook tegen aan lopen:
Je moet een knop maken van het type "Data Transfer (Per page)" (Onder de menu's Öbject") en daar in geef je de source en destination op. Waarbij de "Source" je local HMI / recipe/field is en de destination je PLC tag.
Wat ik fout gedaan had is een knop gemaakt "Set word" RECIPE -> Command etc en daar een trigger action aan gehangen. Dat is dus fout.
GJ_ Bedankt voor het voorbeeld.
-edit-
In een wat nieuwere EB Pro zit een "Set word" functie die heet:
"Object control command"
"Recipe"
"[5] Write selected record to PLC"
Dat had ik gebruikt, geen idee wat dat doet, maar niet wat je er van verwacht.
Je kunt hier ook geen target tag opgeven dus dat is al verdacht.
Op zondag 9 februari 2025 10:54:54 schreef henri62:
Deze file kan ik niet openen, het is een compiled project en het lijkt erop dat ik die niet kan decompilen?Laat maar, is toch gelukt. Ik ga even kijken hoe je dat gedaan hebt.
Dat is een van de mooi dingen van Weintek: een volledig gecompileerd project uploaden van HMI naar je laptop en dan kunnen decompileren. Dat is redelijk uniek te noemen.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Dat is inderdaad mooi!
Nu nog een andere uitdaging: Hoe krijg ik ipv 1 veld meerdere velden uit mijn recipe in de PLC?
Het is natuurlijk niet de bedoeling 2 knoppen te maken.
-edit-
Volgens mij heb jij dat gedaan door in een keer meerdere velden achter elkaar te zetten (een struct dus eigenlijk) (in dit geval via modbus) en de word count net zo groot te maken als de totale lengte van alle velden?
Kan dat ook eventueel anders via triggers of zo?
het is een "data transfer(per page)" knop
Hier stuur ik de eerste naar #19.011 en de rest gaat dan naar #19.012, #19.013 enz
Erg simpel allemaal..... als je het eenmaal hebt uitgevogeld 
[Bericht gewijzigd door GJ_ op (23%)]
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Die had ik al gezien.
Dus ik moet toch mijn tags achter elkaar gaan zetten in de PLC in de juiste volgorde om een compleet record te schrijven.
(En hopen dat de endianess van de getallen me niet bijt)
Ik wil namelijk ook de naam mee wegschrijven in een ASCII string (16 chars dus 8 words + data dus nog) en dat mee visualiseren.
De naam heeft toch alleen nut in de HMI? Wat moet de PLC er mee?
Ik zet inderdaad alles achter elkaar. En in parametergroep 19, zodat áls een of andere bruut het scherm sloopt (dat komt voor) de klant altijd alle waardes met de hand via het toetsenbord op de M700 kan instellen. En dan is het zeker zo handig als die op een logische volgorde bij elkaar zitten.
Eigenlijk doe ik receptdata altijd aaneengesloten, ook met andere HMI's.
En anders kun je altijd nog een macro schrijven.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Inderdaad ik wil in de HMI het huidige gekozen recept op een andere plaats in de HMI weergeven.
Er zijn een paar silo's waar ik de (soort) inhoud van wil tonen en daar hoort behalve de text ook nog een soortelijke massa bij (en misschien later nog wat andere dingen zoals roerwerk parameters).
En ik wil ook dat de keuze ergens bewaard blijft na reset/powercycle van het systeem. Dus mijn idee was om het in de PLC in de NVM te zetten en via de HMI in de NVM wegschrijven. Dan kan ik ergens op een pagina gewoon de text in de HMI zetten uit de NVM tag (als read-only veld).