• Content Count

  • Joined

  • Last visited

Community Reputation

0 Neutral

About steveandrews

  • Rank
  1. steveandrews

    2 device conflict?

    Ooops! just figured out that it's the collapsing magnetic field in the solenoids that's causing it. It's odd because they are on a separate power supply and energised by relay boards with all the right diodes etc. Somehow the signal is getting back through the power lines of the embedded computer and causing no other problems except dropping the usb-rs232 to the flow controller. The one to the arduino chip that actually controls the valves seems unaffected! So ignore my question about device conflict, have tested it and the communication part is rock solid Cheers
  2. steveandrews

    2 device conflict?

    Hi, I'm having some issues I think with a conflict between 2 devices. I thought it was an electrical issue but i am now pretty sure it is daqfactory. I have a usb to rs232 connected to a flow controller and use a custom protocol to poll it via the virtual comm port as per the instructions in the manual, driven by 1 channel at a timing of 1 sec and add the parsed data to channels. This works great. I also have an arduino chip built into my embedded computer that is running a modbus protocol (although the chip is built in to the board, i think it also runs a usb to serial adapter chip). This also works great and i use a sequence to read some registers and put them in channels. To write to some registers i just use the modbus commands on the channel and set the channel. The problem I am having is that if i switch some valves on/off by setting the registers, sometimes the RS232 adapter to the flow controller will drop out and i have to unplug in order to then initcom(). I get a timing lag error. I think what is happening is maybe if the writing to the modbus registers happens at the same time as the channel timing talking to the flow controller, the flow controller comm port gets locked up somehow? I'm not sure if this is an accurate diagnosis. The modbus read doesn't seem to be affected but it is in a sequence with a try catch. I tried reading the flow controller in the sequence with the modbus, with both reads from the modbus and the flow controller on a 1 sec loop with 0.5 sec offset. They both have try catch and the data comes in fine. But writing rapidly to the modbus I can still get the flow controller to drop out. I was thinking to move the writing to modbus into the sequence also, so I can be sure it never sends data at the same time as the reads but I'm wondering if i'm going about this all wrong!? I don't understand how the two different devices can affect each other like this as it's a different device, different protocols and different ports??? Any ideas would be great Cheers
  3. steveandrews

    VNC multiple windows

    Ah nice, was this one of the research aircraft? NASA DC8? I'll have a read through section 12.7 Connecting to a remote copy of DAQFactory cheers Steve
  4. Hi, Ok, how to describe this... So I have an embedded computer with a small touch screen running daqfactory that is doing some process control. This will have a basic user interface to work well with the small screen. I want to then be able to access daqfactory on this computer from another computer but view a more complex user interface. At first I thought maybe daqfactory running on both computers, but this could get complicated. Then I thought maybe I can use VNC and log on to the embedded computer. Is it possible to use popup page modal and when daqfactory starts to make two windows, maybe on separate virtual desktops, display one on the small touch screen and VNC on to the other one from the computer. Then I can control the program from either computer and the embedded one can mean the system is standalone Cheers Steve
  5. steveandrews

    VM multiple instances

    Hi, I am running DF on a virtual machine and it thinks that two instances are running when they aren't. This gives symbol library issue DF isn't installed on the host, just the VM. I've ran it like this before with no issue Any ideas? Cheers
  6. steveandrews

    Save File Dialog

    thanks, so the difference between the command type setregisterS16 (6) and setregisterS16 (16), is the latter actually being set multiple registers. It was this that was causing problems as the arduino library modbusino needs the (16) command even to set a single register. I found a previous AzeoTech post which summed it up nicely, and quote it here in case anyone else has this problem:
  7. steveandrews

    Save File Dialog

    oops, yep, I missed the * on the save but not on the load! thanks I'll check the modbus again, I read in one of your other replies that it hadn't changed for years and I wouldn't expect it to as it's a standard, but I literally just upgraded and it stopped working. I think the drop down modbus options have changed in the channels though as now it has readholding U/S16 but when calling the device in script it just says S16, I guess these are the same anyway and the modbus underneath hasn't changed but maybe the way it is written has? I don't know why this matters, it probably doesn't but maybe it's just confused me somehow as something looks different. I'll go back to basics on my setup and see what's happening. Also, out of interest, what is the number in brackets after the modbus call type? some of the options are duplicate but this number changes. cheers
  8. steveandrews

    Save File Dialog

    Hi, I just tested the latest DF version and it's not fixed. It still says "no items match your search" as per the first image i posted. The file extension matches the extension of other files in that folder but none are being displayed. Like I showed before it works with the load but not the save. Also, have you changed modbus recently in newer versions? I was using the arduino modbus library modbusino and reading unsigned 16bit integers into DF fine and now I just get "illegal type" message. My punishment it seems for upgrading and the bug wasn't even fixed! cheers
  9. steveandrews

    PID control of humidity

    Hi Sarah, Did you use Daqfactory for this in the end? I have used it for exactly the same purpose and it's really very easy to program so I could send you my program as an example. The key to doing this practically though is to use the correct MFC for the 'wet flow' that isn't influenced by humidity. Normally, if you get condensed water in your MFC it will give some crazy readings
  10. steveandrews

    Save File Dialog

    Hi, Please could you fix this bug? it's really annoying saving files and not being able to see any files in the save dialog. It works fine for load file dialog so shouldn't be a difficult fix? Cheers Steve
  11. steveandrews

    Modbus omron E5CC temperature controller

    Ah nice, so the code just re-initialises the serial every 60 seconds if data is not received from the input channel for more than 10 seconds. I'd not thought of using the .time of a channel like that but that's really useful. Cheers
  12. steveandrews

    Modbus omron E5CC temperature controller

    Hi, that's perfect! Thanks as always for your quick reply and help. You just made it all so much more simple. You are right, the manual just confused the hell out of me. Omron is Japanese and therefore there is no such thing as "filler" every detail is important and must be listed. This is my experience from living here at least. There will be a quickstart manual, likely with animal cartoons and not enough info, then a detailed manual with so much info it could be used to clone the product. My IT classes at high school are coming back to me now. Of course 2 bytes is 16 bit and 4 is 32 so the manual should just say "if you want to read the register as a 32 bit long, use the address in the 4 byte column. Each register is 16 bit so a 32 bit long integer uses two registers. Addresses are written in hex". It would also be nice if they made it clear which registers are read/write and if there are limits to the number of writes. I'm assuming not for now! The 32bit signed reverse word read holding worked for me. The other issue I had is my timeout was too short and depending on what reply i was requesting it would timeout sporadically. Changed it to 1000 ms and it's perfect. I'm just writing to the set point register and that works great too. If I pull the power and reset the controller it remembers the setpoint so is non volatile but not sure if there is a write limit. Maybe newer hardware like this uses better memory? On the subject of pulling the power. Is there a way to re-establish comms after a power cycle? Currently it will restart if i go into comms setup. I could catch the timeout error and loop a sequence to attempt re-connection until it replies? I had a look at your quick mod program but it doesn't reconnect after a power cycle Thanks again
  13. steveandrews

    Modbus omron E5CC temperature controller

    Hi, I am having some issues with Modbus and a temp controller. I think I am ok with daqfactory but very new to modbus. In the past I have used my own comms protocol over rs232 but now trying modbus over rs485. I have an omron K3SC-10 usb to rs485 converter and used this with a Yokogawa temperature controller absolutely fine. I used Modbus ASCII, found the registers in the manual and used the standard daqfactory commands to read holding S16 for each register. Surprisingly easy! I couldnt get hold of another yokogawa temp controller so bought an equivalent Omron E5CC model. Its running Modbus RTU and I have SD and RD traffic so everything is working comms wise. The manual wasn't so easy to understand so this took a while. My problem is that I just get modbus timeouts when I try to read any registers, sometimes I got some random (to me) data but then it stopped. I think this is because it doesn't recognise the commands I am sending? I found the quickmod program that you made (screenshot attached) and i can see some of the data I want: 248 is 24.8 degrees C! I don't really understand the tag number and number of points? Is tag the register? Is number of points trying to read an array or a range of registers?? I'm very confused but think I am close. I've attached the temp controller comms manual. I don't really understand about 2 or 4 byte modes and if the registers are in hex or what!? I think I have got as far as I can now using trial and error and very basic understanding but now maybe I need to actually understand what's going on! I'm ok with rs232 because you send it a command and it sends something back, simple conversation. I think modbus is the same, but I don't really understand the conversation between devices and the upper, GUI level isn't working for me. Maybe it's simple and you can explain what I am missing or if you have a suggestion for some easy learning material for me? I need to read the temperature controller PV and setpoint and write setpoints and PID values. Cheers Steve E5_C_CommunicationsManual_EN_201404_H175-E1-08 (1).pdf
  14. steveandrews

    Device Error Handling

    Hi, I want to catch the device errors thrown by Daqfactory when a labjack is disconnected or not present on startup. I have some startup code that autoruns and initiates the labjack etc. I want this code to try to communicate and catch the device error if no labjack is present and display a message box saying the labjack should be plugged in etc. Then when the message box is 'ok'd', it tries to run the startup sequence again. I also want to catch the error when it's disconnected whilst running, although in this case it will reconnect automatically but I would stop a sequence running and display a message. The error code is D0050:01:1007 for no labjack found - i assume the 01 is the device number and the last 4 digits the unique code. It's 1015 for labjack disconnected. I know how to catch 'C' errors and display messages etc. I have tried catch("D0050") and catch ("D0050:01:1007") with no luck. Any tips? Cheers Steve
  15. steveandrews

    Save File Dialog

    Hi, Possibly a bug in the save file dialog box where files with matching extensions are not displayed. Works fine for load file dialog Private.strFileName = file.FileSaveDialog("methodname.meth","C:\ANDREWS_TDU\methods\",".meth","Save TDU method")