indigo

Members
  • Posts

    7
  • Joined

  • Last visited

Everything posted by indigo

  1. I have checked the average time between Tx and Rx for both devices (8 total queries for both), for a couple of queries I did them immediately after each other but in general with some seconds between the queries. For D30 the average time is 54ms and D17 it is 26ms. Concerning the second com port, check my screenshot below, is this what you mean? Here I just created a new serial port (smd) with the same settings as arduino_con, but I probably need to make some configuration change I assume otherwise it'll literally be a copy of arduino_con right? em_active_power with this new smd device still provides errors by the way.
  2. Thanks for your detailed response. Interesting note on modbus, I am personally still quite new to the protocol so it is definitely useful to learn the small intricacies of the protocol. I did exactly what you pointed out: I enabled the different settings on the com port and could see that both Rx and Tx was being registered for D17, but for D30 (new device), only Tx was being registered. So, apparently DAQFactory was not receiving a response from the device. I changed the offset for D30 to 0.5 and it seems to be working better now, although I still get timeouts every ~5mins or so. I think this means that the offset / delay is accumulating and then it causes a timeout, if you understand what I mean. Ideally, this works without the timeouts, but if there are no other solutions that you can think of then it is manageable. Thanks in advance for any additional input you can provide. (I didn't adjust the offset for D17 since I didn't think it is the one causing the problem and I didn't adjust the SetDelay() method either for these tests)
  3. Hi, thanks for your response. I made a separate DAQFactory file to test things out, with only two devices being utilized. 1) It seems the energy monitor that is causing issues is not 0 indexed. When I changed the the channel from 12 to 11, it read 0 instead of a sensible number. 2) I reverted to 20ms delay in the new file I created. 3) In this new file there are no sequences or anything being done with the channels that can control the outputs. What I did here is first disable the sht device (timing = 0), this starts at around 14:00. There was only one timeout error in ~20 minutes. Then I disabled the energy monitor and enabled the sht device, this didn't cause any errors. Finally, I enabled both of them and you can see in the screenshot below that I start getting errors again. I am not sure if it is something with the energy monitor itself and the way it works that it is clashing with the other devices or if it is a clash between the different notations. Do you have any clue, specifically if there is anything else software side I can do to fix it in DAQFactory?
  4. I have recently added a new device to our RS485 network (Eastron SMD120). Previously, all the devices worked great with no timing issues (Device.Arduino.SetDelay = 20). After adding this new device I either get a timing lag error or timeout error in the command / alert box (see attachment). I tried to change the timing of the device by increasing it to 2 seconds, but it still gave the same errors. I also tried to increase the SetDelay variable of the device object (up to 100ms) but this also didn't help resolve it. The device uses register notations in > 30000 (so, for the channel list I showed, em_active_power is a channel from the new device and the parameter being read into DAQFactory is set to channel 12, but the datasheet requires it to be 30012). The other devices use 0 as the starting register number. I know that internally the modbus protocol uses 0 notation, but I think this is what is causing the issue. Any ideas? How can I circumvent the two types of register numbering?
  5. I didn't manage to find a function for this, but: I would like to convert an array (i.e. {"name", "mass"}) into a string (i.e. "(name, mass)"), is there a function for this, like ArrayToStr(array)?
  6. Thanks for the reply, I only now managed to get around to implementing this, so sorry for the delay. I found the sample code in the DAQFactory folder and I guess that code snippet you provided has to be added to a sequence called "OnKeyDown" for it to work. I tried to do the following (which tabs between multiple edit boxes): switch case(component.edit_box1.GetFocus()) component.edit_box2.SetFocus() case(component.edit_box2.GetFocus()) component.submit_button.SetFocus() endcase But, it doesn't seem to be able to put buttons into focus, is this correct? Or is my code snippet wrong? Thanks!
  7. Hi, Is there a way to jump between edit boxes / buttons on a page by pressing i.e. the tab key? I've tried via speed key and to look online but I could never find anything. Thanks in advance for your support!