Emerson GE R3Xi - Write to %I bits

moistcat

Member
Join Date
Jun 2020
Location
Melbourne
Posts
54
Hi All,
I am trying to write some simulation logic for an existing project im working on.


Does anyone know if this is possible to write to single bits of %I registers? My attached example compiles but does not run as expected.

9fkom7Xm0k.png
 
Do not know Emerson, however, most platforms do not respond to forcing of inputs (some simulators do allow it), the answer is to map the inputs to internal bits in a program & use the internal bits in the main program, for simulation you remove or disable the call to the input mapping & just enable the simulation program, whewn tested just remove the simyulation code & re-enable the call to the input mapping I do it all the time I usually name the real inputs like Cyl_1_Fwd_PX & Cyl_1_Fwd_PXM for the mapped bit then just use this in the main programs. Example:

Mapping block: (disabled for simulation)
A Cyl_1_Fwd_PX = Cyl_1_Fwd_PXM (map the real input to internal bit)

Main program
A Cyl_1_Fwd_PXM out xxxx.

The simulation Block: (Enabled for simulation)
A xxx. ANxxx. OUT Cyl_1_Fwd_PXM
I do similar for the analogues map them in then disable them for testing.
Sometimes if using a real PLC without the actual I/O I do the same for the outputs so the PLC does not fault as there is no real in/out cards.
 
The Rx3i permits using input addresses for output instructions. I have done it, but not exactly the same as you've shown. Instead of using a bit of a WORD variable, I always used the absolute address for the -( )- instruction. So I would have used boolean variables %I00177 and %I00178 instead of %I00177.0 and %I00177.1.
 
Ahhh thats the business Steve. I didnt think to do that.. I got it working by copying input word to temp %R word, executing my logic using BitSet and BitClr blocks, then copying temp reg back to %I..

I just tested your method and can confirm is 100x nicer.
I just didnt think to create boolean tags on the %I registers..
Thanks.
 
The Rx3i permits using input addresses for output instructions. I have done it, but not exactly the same as you've shown. Instead of using a bit of a WORD variable, I always used the absolute address for the -( )- instruction. So I would have used boolean variables %I00177 and %I00178 instead of %I00177.0 and %I00177.1.

Boolean read and writing of "I" bits is preferred. I have written a "0" or a "1" to an array of Boolean bits treating them as a word to turn on/off a string of consecutive "I" bits, that are not part of plc IO.
Do not really know why you need to do this with "I" bits. I normally use "M" (memory) bits for this.
To me an "I" bit is an input...you may confuse things in interpretation of the logic treating them as outputs.
 

Similar Topics

Two questions for GE/Emerson e.g. PACSystemsRX3i (CPE330): 1. Is it possible to use 2D arrays inside a function as a local member? (I can only...
Replies
0
Views
49
gents, I am trying to configure communication with EMERSON PK300 controller through port A1 using generic ethernet communication module . I could...
Replies
0
Views
112
Hi there, I'm doing some extensive testing and commissioning with a slew of new Emerson PACSystems RX3i PLCs. It would be convenient to...
Replies
5
Views
108
Hi there, Trying to get some ascii serial communications working via RS485 (COMMREQ functions). I have attached our wiring for the COM2...
Replies
1
Views
979
Hello all, First time poster, long time viewer of these forums. Could not find my solution on here. We have had issues with a Comm Fail on an...
Replies
2
Views
396
Back
Top Bottom