|
|
MVI56MCM in CLX- Customer request. Not sure how to accomplish what they want
Hi,
I'm a fairly new user of ProSoft cards. I built my application around the standard program that Prosoft supplies and it worked flawlessly. I packed al of my IO status and raw analog values into sequential words and moved them to registers in the WriteData field like so:
IO
BTD
Source: Local 3:1.Data (etc for other digital IO cards)
Destination: MCM.WriteData(100)
Length: 16
Raw Analog
MOV
Source: Raw value tag
Destination: MCMWriteData(104)
I connected to the card and was able to retrieve the data from the associated 40000 register before we shipped the panel.
Now the customer wants to:
(1) Retrieve the digital IO data directly from the IO points using Function Code 2
and
(2) Read scaled real values directly from the analog card. I assume that he intends to use FC 3 but he wants to retrieve the data starting at register 20,000.
I'm not sure how to accomplish either one. Any suggestions?
Mike
|
|
|
RE:MVI56MCM in CLX- Customer request. Not sure how to accomplish what they want
Our MVI56 modules do not allow for the direct reading of I/O modules in the CLX rack through our modules. Our module can talk only to the CLX CPU across the backplane; not to any other I/O modules. You will continue to have to COPy the raw inputs/outputs to/from our module's memory in the manner which you describe. When our module is a Slave, you COPy digital or analog inputs to the module's memory from the WriteData array so the Master can get that data with Modbus Read commands. You COPy digital or analog values the Master writes with Modbus Write Commands from our module memory into the ReadData array.
The Master system will be able to read only the Inputs you COPy to our module's memory and will be able to send Output only to our module's memory for you to COPy to any output cards
For Item (1), our module responds to Function Code 2 and sends binary data based on the bit address and bit count of the command. Each 16-bit register in our module will hold 16 Input Bits.
However, our module emulates 0x0001, 1x0001, 3x0001, and 4x0001 addresses only. We do not make provision for reading from 2x0001 register addresses with any function code. If the Master sends Function Code 3, we will assume a 4x address. This will probably not be a problem, however, as the 1x or 4x parts of the address are not part of the actually address transmitted; but are assumed from the FC. The Master can assume 2x with FC 3 and our module can assume 4x with FC 3 and the two can still exchange data.
The real question with Item (2) is whether the Master will expect 2 8-bit bytes from 2x registers or expect 4 8-bit bytes. This can vary from one Master device to another. This can affect how the module will need to be configured.
And, finally, unless you carefully use data type offsets, all the data areas of the module overlap...that is, Coils 00001-00016, Input Statuses 10001-10016, Input Register 30001, and Holding Register 40001 are all the same register in module memory, Memory Register 0.
If you need additional specific recommendations on how to set up for your particular application, please call ProSoft Technical Support at 661-716-5100 or send a detailed, written request to:
Support@psft.com.
|