Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Troubleshooting with Eurotherm 2404 controller drivers

Hi all,
 
I am trying to use Labview ( version 8.5) to control a Eurotherm 2404 temperature controller over RS232 using MODBUS protocol. I wrote my program using the drivers from the NI website (Eurotherm 24XX) With my program I can successfully manipulate the setpoint, read setpoint and process value, run a program program, and graph and save data. My code for building programs is giving me troulbe, however. When I write a program to the controller, sometimes the segments are written properly, but some segments work better than others. Ramp by rate segments work well, but dwell segments sometimes write without the duration parameter registering in the instrument with no error message. Call Program segments give me an 'out of range or uneditable parameter' (paraphrased) error. There doesn't seem to be a pattern to which segments work and which don't. I suspect the problem lies in the drivers, like the register numbers are wrong or something. My controller is a 4 program 8 segment controller, and the drivers were written for up to 20 programs and 16 segments (I think). I also get (again seemingly random) VISA timeout errors when writing programs to the controller, but they are intermittent and not a large concern. I am new to both RS232 and LabVIEW, any help is appreciated.
0 Kudos
Message 1 of 7
(6,023 Views)
Hello Questionare,
       I took a look at your VI and have a couple of suggestions for you:

1.  Reduce your code down to the bare minimum that reproduces the problem behavior.

2.  When posting a VI to the discussion forums it is a good idea to not have SubVIs that are unique to your application.  If your bare minimum example only uses VIs from vi.lib and instr.lib, then anyone else with a Eurotherm controller that is supported by the LabVIEW driver can easily run your code.  Also, since not everyone has upgraded to LV 8.5, you might attract a larger audience of assistance by saving your bare minimum example back to LV 8.0.

3.  While using an event structure is a good fit for your application, it can complicate troubleshooting considerably, especially in your case with 48 different event cases.

A lot of times, just the process of reducing your code down to the bare minimum that reproduces the issue will expose what is causing the problems.  I hope that it goes well for you and hopefully someone else who is more familiar with Eurotherm controllers will let us know if they have seen similar issues with the driver.

Cheers,

NathanT
0 Kudos
Message 2 of 7
(5,994 Views)
Thanks for responding. I tried your suggestion (testing mini pieces of code) and I had the same problems. I found the solution, however. It was in the low level code of the drivers. The Configure OP Segment Parameters VI does not write the segment type, the segment type input is only used to determine which input fields to write to the controller. I cobbled together some pieces of other driver sub VI's and it works fine now. Sorry about my inept question.
0 Kudos
Message 3 of 7
(5,987 Views)
Questionaire,
      Your question was not inept, I just wanted to let you know how to present your issue in a way that increases your chances of getting help.  I am happy to hear that you found what was causing the problem.  I would also like to better understand the change you made to the driver that worked for you so we can look into fixing the driver.  If you have time, either post the information to this thread or send us an email at instrument.drivers@ni.com.

Thanks,

NathanT
0 Kudos
Message 4 of 7
(5,954 Views)

The problems with the drivers that I have found are that

A- the 'floating point' register utilies, read and write, cause visa timeout errors and can simply be replaced with the normal write/read to register.vi (works for both multiple and single versions of the utility VI's). I found this solution on the disscusion forum.

B- the VI used to write program segments to the controller writes only the segment parameters, not the segment type. To solve the problem, I used a sub VI that returns the segment type of a specified segment, took its register formula, and pasted the register numbers into the defective VI. I then put it into a sequence structure which first wrote segment tpye to the registers I had pasted in and then wrote the parameters for that segment. If the program writes the parameters before the segment type you can get 'read only' errors. I think the VI I fixed was called "et24xx Configure OP Segment Parameters"

Hope that helps,

Questionaire

0 Kudos
Message 5 of 7
(5,943 Views)
Hello Questionaire,
       That certainly does help.  This was reported to R&D (# 4DI869ZQ) for further investigation.  Thanks for the feedback!

Cheers,

NathanT
0 Kudos
Message 6 of 7
(5,910 Views)
hi "questionaire"

can you post a part of your modified vi ? (not necessarily a working version but one including the corrections you made to solve this "segment problem" ? )
thanks
0 Kudos
Message 7 of 7
(5,698 Views)