Writing a float to a Spyder-Plus

Perfectly understood Brian. That's exactly what is happening. My comment on the signed ints being weird, is there is no reason I can see, for the two ints mapped in the AOI data structure to be signed at all. Seems unnecessary.

Anyway, I will try the suggestion on splitting the float into an array but I do know nothing else is writing to those mapped register addresses. I wrote the entire project and nothing is writing to that address. I'm no youngster and have been doing this a long time too. I have written the routine exactly as described in the Prosoft manuals. It just does not work when written as they describe by just pushing a float in to the address using the COP instruction.

Mind you, I've found a few bugs in studio 5000 before so it's not the first time.

Anyway thanks for the suggestions, I'll try it on Monday but I expect the results to be the same. Splitting the 32 bit float into a 2 int array in the PLC memory should be the same as COPing it straight to the MNETC mapped address.

I've asked Prosoft for support and they have said they'll look into the issue and get back to me. If this is a bug, I wouldn't be surprised. I'll post the outcome either way.
 
Last edited:
Update: SOLVED.

I watched a Prosoft info video and the penny dropped. It IS because of the 1000 offset for write addresses in the MNETC card PCB software, when you want to write to the first address of 0, it had to be numbered as internal address 1000 in the MNETC configuration line, within prosoft configuration builder for that client, which on the Studio 5000 AOI tag is MNETC.Data.Writedata[0]

I originally needed to use internal 558 as a lot of internal read address space was already in use - BUT putting 558 in the MNETC card command was not valid as a WRITE address even though no error is generated. It's just ignored.

I had to use 1558 in the MNETC card, and 558 in the AOI tag address within Studio 5000, and can simply COP the float straight to that address and it works asap.

For clarity:
Since this is the first device out of dozens already on that card, to require a write command, I could have used 0 [1000] in the AOI tag database, but I like to keep address ranges unique to a device and since the read space for this client device was using 550, 551, 553 etc then I set 558 as the write address for it. Keeps things clean, as this client occupies 550-559 in the read-data space. Writing to 558 in the AOI tag database is fine but it MUST be numbered 1558 in the MNETC config within the card, or it does not get sent.

Those address ranges are the defaults for the MVI56E-MNETC and can be changed at setup time, the card can accommodate up to 10,000 modbus addresses but the read and write address range values in the card must not overlap. Makes sense now.

I've set up literally hundreds of Proton Laser LSV gauges using these cards, they do not get written to ever, but now I have had a need to write to a different device using this prosoft module, I now know the requirements and will not get stuck again.

@drbitboy's understanding of the issue and process required was of course spot on and exactly the same as I had already tried, but the address space offset for writing data in the MNETC card was what tripped me up.

RTFM huh. Or in this case WTFV (Watch * * Video)... carefully.
 
Last edited:
Update: SOLVED.

I watched a Prosoft info video and the penny dropped. It IS because of the 1000 offset for write addresses in the MNETC card PCB software, when you want to write to the first address of 0, it had to be numbered as internal address 1000 in the MNETC configuration line, within prosoft configuration builder for that client, which on the Studio 5000 AOI tag is MNETC.Data.Writedata[0]
Not wanting to tell you "I told you so", but...

Additionally, you can also offset addresses from the variable array in the PLC into whichever registers matches the other device, so that shouldn't be an issue either.
I told you so. Granted, I need to work on my eloquence an awful lot. Sorry for not expanding more on this.
 

Similar Topics

I wrote some code in a compact logix using rs logix v.20.04 back in February. This code counts the number of pumps running a remote pump station...
Replies
12
Views
2,837
Hi, I'm having an issue in crimson 3.0 when I create a programme using a case statement referencing a fault word that each bit needs to change the...
Replies
5
Views
253
Hello all, I'm currently working on a servo motor linear positioning system (ball screw). I'm all set up regarding communication between my HMI...
Replies
1
Views
93
Hello All: I have a Windows 10 PC running a FTView ME Station 10.00. I have a .mer file version 6.00. It has been running well on it for a long...
Replies
1
Views
171
My R55 Ingersollrand is tripping on motor overload and im falling to see the trip history it is writing Acquarring texts
Replies
0
Views
134
Back
Top Bottom