Setting up a modbus network on a DL262 Directlogic PLC with Siemens LMV 3 Burner controllers as slaves, eight of them, with OCI 412.10 Interface

The project managers just found the OCI interface cable and are working on access to the siemens programming software, so I have some time to dink around.

A single timer will suffice for this im assuming, and put in the start range at its appropriate location in the instruction and should get the correct response from what i'm understanding, but I don't have access to the panel yet and its not fully hooked up.

Thanks again for the quick response!
 
MRX iBox for each LMV with its own timer
You should use a single timer to make sure that you're not trying to send commands to two different Modbus slaves at the same time. For each Modbus read multiple registers command you send, you need to wait for the response from the slave (or a time limit in case there is no response) before issuing another read multiple registers command to the next slave.
 
Do you have the Modbus map for the LMV3? If not I can make a copy of what I have and post it.
Or else tell me which four parameters you need to read and I'll tell you their Modbus address in the LMV3.

I do not, could you link this mystery knowledge? Working here is kindof like a treasure hunt.
 
Do you have the Modbus map for the LMV3? If not I can make a copy of what I have and post it.
Or else tell me which four parameters you need to read and I'll tell you their Modbus address in the LMV3.
I believe the parameters/data types were Flame signal (Bcd word), HGPS (high gas pressure switch) status which is a bit, alarm status, which is also a bit, and error code, another BCD/word. Not sure if i had already answered this. If so apologies.
 
You should use a single timer to make sure that you're not trying to send commands to two different Modbus slaves at the same time. For each Modbus read multiple registers command you send, you need to wait for the response from the slave (or a time limit in case there is no response) before issuing another read multiple registers command to the next slave.
"For each modbus read multiple registers command you send, you need to wait for a response from the slave."

I am locked to .5s or below because of the timer, would going with 19200 be advisable vs 9600 (its roughly 50 feet of length for the cable run). The slave address will simply be 1 through 8 and The PM said we are definitely going with TCP and not RTU, but its a 3 wire device and I thought that that was only 9600/modbus RTU which has me confused.

I know ive asked more than a few questions and certainly owe you one, one day. Thanks again Steve.
 
I am locked to .5s or below because of the timer, would going with 19200 be advisable vs 9600 (its roughly 50 feet of length for the cable run). The slave address will simply be 1 through 8 and The PM said we are definitely going with TCP and not RTU, but its a 3 wire device and I thought that that was only 9600/modbus RTU which has me confused.

I know ive asked more than a few questions and certainly owe you one, one day. Thanks again Steve.
You probably won't see much difference with respect to either baud rate when using Modbus RTU.
If you are using Modbus TCP, that is based on Ethernet, but the data tables will be the same, you would just specify the slot with the ECOM card in the MRX and MWX setup.

I would recommend reading the whole block of data you need including the word that contain the two important bits, then separate out those bits if needed in logic. Just be sure to reserve enough memory locations for all the data for all eight slaves and count carefully (octal) Note that you can address a V memory location at the bit level, For example bit 0 of V401 could be addressed as B401.0

I also prefer to see a unique message instruction for each slave, although it is possible to build logic with pointers that re-uses the same instructions and alters the slave ID number and the addresses, that type of logic is harder to follow and nearly impossible to customize if, for example, one of the slaves has unique needs or gets upgraded and the memory map changes.
 
Last edited:
You probably won't see much difference with respect to either baud rate when using Modbus RTU.
If you are using Modbus TCP, that is based on Ethernet, but the data tables will be the same, you would just specify the slot with the ECOM card in the MRX and MWX setup.

I would recommend reading the whole block of data you need including the word that contain the two important bits, then separate out those bits if needed in logic. Just be sure to reserve enough memory locations for all the data for all eight slaves and count carefully (octal) Note that you can address a V memory location at the bit level, For example bit 0 of V401 could be addressed as B401.0

I also prefer to see a unique message instruction for each slave, although it is possible to build logic with pointers that re-uses the same instructions and alters the slave ID number and the addresses, that type of logic is harder to follow and nearly impossible to customize if, for example, one of the slaves has unique needs or gets upgraded and the memory map changes.
"For example bit 0 of V401 could be addressed as B401.0" This makes sense!

Two of the 4 parameters I need to read from the LMV 3 are bits, one is a pressure switch status, the other is alarm status. I also need to read two BCD words. "Flame Signal" and "errpr code" which I found in the LMV3 manual under the modbus section, but the table in the manual doesnt make really good sense because it could be function code 3 or 4 for the same function?

for example in the column under function code for flame signal will be "3/4" what the flock. three quarters? 3 of 4? 3 or 4? (im joking) but its still ambiguous as all heck is my point. I need a siemens guy that knows these LMV 3 in burner applications and that knows modbus.
 
I am locked to .5s or below because of the timer, ...
maximum modbus message is 250+ bytes, 9600Baud at ~10bits/character (including at least 2 of start, parity, stop), so the message itself is under a quarter second, plus turnaround time in the device, so you might want to cascade two timers together, or run a repeating timer's expiry bit to a counter to get a longer timeout.
 
I am locked to .5s or below because of the timer
The timer preset is entirely up to you. Make it as short as you can get away with.

I agree with OkiePC that you won't see a significant increase in speed btween 9600 baud and 19200 baud. I haven't had to deal with the LMV in almost twenty years. I also agree with everything else he said. When I was working on the project, serial Modbus RTU was the only option. Since then, perhaps Siemens has added ethernet capabilities to the LMV.

Modbus function code 3 is "Read Holding registers". Function code 4 is "Read Input Registers". Holding registers can be written to. Input registers are read-only. It may be that the LMV will respond to either function code with the same data. I'm pretty sure I only ever used function code 3 in the project I was involved with.

For your application, you Modbus address 40014, 40026, 40036, and 40038, so you should send a function code 3 with a starting address of 40014 and a length of 25. However, the document I have says Siemens imposes a limit of 20 words of data, so you may need to break that into two requests, the first with staring address 40014 and length of 13, the second with starting address 40036 and a length of 3. I hope that isn't necessary because it will double the amount of time between updates of data from each individual LMV.
If Modbus TCP is now an option Siemens may also allow larger data blocks.
I need a siemens guy that knows these LMV 3 in burner applications and that knows modbus.
You need someone whose knowledge is current. Mine is from twenty years ago.
 
---
but the table in the manual doesnt make really good sense because it could be function code 3 or 4 for the same function?

for example in the column under function code for flame signal will be "3/4" what the flock. three quarters? 3 of 4? 3 or 4? (im joking) but its still ambiguous as all heck is my point. I need a siemens guy that knows these LMV 3 in burner applications and that knows modbus.
Function code 4 is supposed to be for reading analog inputs, but really just means read only 16 bit registers. Function code 3 is to read "Holding Registers" which can be read or written in most cases. Some devices will respond to either function code as a convenience and group their read only registers and writeable registers adjacent to each other so if you only need to read them, you can get all the stuff you want with one read message.
 
Function code 4 is supposed to be for reading analog inputs, but really just means read only 16 bit registers. Function code 3 is to read "Holding Registers" which can be read or written in most cases. Some devices will respond to either function code as a convenience and group their read only registers and writeable registers adjacent to each other so if you only need to read them, you can get all the stuff you want with one read message.
Thats a good idea, thank you sir
 
Okay, ive got the rig all powered up, and access to the 8 slaves through the ACS410 software, ive made a couple MWX rungs to read holding registers

1714075678664.png


like this.
 
I am testing the first slave and got this so far in my data window after setting the baud and parity on the LMV side to 9600 and even, as well as on the DL262 side.
 

Similar Topics

Hi hope all are ok. I have mitsubishi PLC Q03UDV CPU. I have control a drive through modbus inteligent module QJ71MT91 in GX Works2. Any experts...
Replies
1
Views
633
I am not very experienced in Rockwell PLCs and have run into a small problem, so I could do with a little bit of help. We have a redundant...
Replies
3
Views
2,539
I am trying to do very simple thing which is to write a value to PLC modbus address. I set the byte (Productivity Suite) to be modbus...
Replies
6
Views
2,743
Title says most of it. I have a thermon tcm2 heat Trace controller that is modbus rtu. It's hooked to a digione iap to which I have hooked to my...
Replies
4
Views
2,411
Anyone use the ModbusSlaveTCP.L5X for CompactLogix? I have it installed and cannot seem to set the Modbus (Instrument) ID. I'm expecting to set...
Replies
4
Views
1,981
Back
Top Bottom