Hello,
I want to display only the controls, nothing else, because I wnat to use the hmi in an iframe.
How can i remove all headers from the hmi.
Hello,
I want to display only the controls, nothing else, because I wnat to use the hmi in an iframe.
How can i remove all headers from the hmi.
I had already found those options myself and I was expecting that there was an option to hide the header. Why is there no such option?
My use case is that I have multiple monarco hat controllers, each doing their thing. I want to show them all in one page. An HTML page with iframes pointing to the monarco's works fine, but the headers are annoying and users may get confused if they accidentally click on a header.
Hello,
I want to display only the controls, nothing else, because I wnat to use the hmi in an iframe.
How can i remove all headers from the hmi.
@jan-reitinger Thanks for the reply,
The level 0 task does not use data from the modbus task. The maximum time value reported for the level0 task is a little less than 0.4 ms with an average of 0.125 ms.
The level 1 tasks have a maximum time of about < .3 ms, except when modbus task is failing, that maxes out at a little less then 5000 ms.
After switching on all messages for IO driver messages I noticed 3 things:
@jan-reitinger
I as understand it, multi master is possible on modbus TCP, that is what I am using. I tried your solution with the enable flags, and it works for a short time :
The main problem now is that the rexygen modbus reads are very unreliable:
When I use the 'SRTF' version i see timeouts in the log, I don't see those when I use the 'enable' version. But still the SRTF version seems to work slighly better.
If I use labview or python I don't have any problems controlling or reading from the same device..
For example if I run the following python script from the command prompt:
import timeit
timeit.timeit('client.read_holding_registers(45399).registers',
setup='from pymodbus.client import ModbusTcpClient; client=ModbusTcpClient("192.168.169.100")',
number=1000)
it returns about 2.4 sec for 1000 runs repeatable and without errors.
If I replace the level 0 task with a basically empty task (just display a constant), it behaver better, I don't see the errors.
My level 0 tick is 0.002 and the level 1 loop time is 0.002 * 50 = 100ms. :
My thinking is the level tasks should have plenty of time to do their job but apparently the leverl0 job seems to ruin things. This task is a PIDE regulation block that has not given me any problems so far.
What is preventing the reading of the modbus registers?
@jan-reitinger The reason I need to read the festo terminal before writing is that the monarco is not the only device using that terminal so I cannot rely on the previous state. And reading the terminal on every cycle will basically block it for other devices.
Hi,
In one block I am observing a monetary push button switch to toggle an output. I want to switch a valve via modbus whenever there is a change in the output.
This is the block where I observe the switch:
And this is the block that updates the modbus valve terminal:
They are both at level 1 in my system:
My thinking is that the SRTF block will run the modbus once, only when the output value changes. But does not seem to happen. I am probably not understanding how to conditionally run a code block or what the purpose and use of the SRTF block is.
So how does one run the update of the modbus terminal only when there is a change required?
Hello,
I think I am missing something. On the monarco HAT you can use the MNR_CNT1Q input that will increase/decrease the counter value based on the amount of rotation of the encoder.
I want to know the relative amount of movement the encoder made in a task cycle. For that I used the DIF_ block as in the attached picture:
The issue is that that the counter outputs unsigned int and will underflow to 2^16-1 when moved below 0. This creates weird behavior. Is there a different block that solves the behavior?