News:

Calling all communications systems experts - please share your knowledge here!

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Dave Loucks

#1
INCOM / IMPACC / DT1150 Configuration Tool
July 21, 2022, 11:53:53 PM
As users of the Westinghouse/Cutler-Hammer/Eaton Digitrip 1150 (DT1150) know, there is no tool available to edit or backup/restore a DT1150 trip unit.

While developing the code to configure this product using the Eaton Device Configuration Management Software (DCMS, or internally to Eaton known as "No Touch / Low Touch Loader or NTLT), we needed a configuration file to save in the cloud for this product.

Since none existed, we developed our own based on a simple multi-column CSV (comma separated values) format.  Since the file was a bit cryptic to interpret, we also created some macros within Excel VBA that would convert the file into something more readable.

Click on the link below to download the file and an example DT1150 configuration file.

https://pps2.com/smf/index.php?action=dlattach;topic=238.0;attach=136
#2
Motor Control / C440
May 09, 2019, 04:00:10 PM
Went looking for instructions for the Modbus RTU add-in module for the C440 overload relay and had trouble finding it.  So am putting a copy below.
#3
Modbus / Decoding 32- and 64-bit fixed point values
November 12, 2018, 10:25:21 AM
While the published Modbus standard explains the bit/byte order of 16-bit registers, it doesn't include any instructions for how to deal with 32 or 64-bit registers.  That is left up to the vendors using the Modbus protocol.  Here is how the mMINT handles them.

Example:
Read 32-bit Product ID Modbus Register pair (406255/406256)

       
  • Remove the "40" and subtract 1 from lowest register number to find "wire" starting address:
    406255 -> 6254
  • Convert to hex:
    625410 -> 186E16
  • Place in proper location of Modbus message



    Starting Address Low Byte6E
    Starting Address High Byte18













Request
(hex)
Modbus Node02
Function Code03
Starting Address (High)18
Starting Address (Low)6e
# of Registers (High)00
# of Registers (Low)02
CRC (Low)A3
CRC (High)45
   












Response
(hex)
Modbus Node02
Function Code03
Byte Count04
Register Value (High)(406255)0C
Register Value (Low)(406255)63
Register Value (High)(406256)00
Register Value (Low)(406256)80
CRC (Low)3B
CRC (High)DD

       
  • 406255 = 317110 (0C6316)
  • 406256 = 12810 (8016)
To convert these two 16-bit registers into one 32-bit register:

Value = (3171) + (128*655361)
Value = (3171) + (8388608)
Value = 8391779 (800C6316)

For 64-bit values, the process is similar.

Example:
Read 64-bit Real-Energy-Forward Modbus Register 4-register group (406305-406308)

       
  • Starting with the first register in the list, remove the "40" from the beginning of the register number then subtract 1 from what remains:
    406305 -> 6304
  • Convert to hex:
    630410 -> 18A016
  • Place in proper location of Modbus message



    Starting Address Low ByteA0
    Starting Address High Byte18













Request
(hex)
Modbus Node02
Function Code03
Starting Address (High)18
Starting Address (Low)A0
# of Registers (High)00
# of Registers (Low)04
CRC (Low)42
CRC (High)B8
   
















Response
(hex)
Modbus Node02
Function Code03
Byte Count08
Register Value (High)(406305)00
Register Value (Low)(406305)00
Register Value (High)(406306)00
Register Value (Low)(406306)00
Register Value (High)(406307)00
Register Value (Low)(406307)00
Register Value (High)(406308)03
Register Value (Low)(406308)00
CRC (Low)9A
CRC (High)63

  • 406305 = 0
  • 406306 = 0
  • 406307 = 0
  • 406308 = 3
To convert these four 16-bit registers into one 64-bit register you can convert the two register pairs to decimal and multiply them by 256 raised to these powers:










Register Value (High)(406305)00 * 2561
Register Value (Low)(406305)00 * 2560
Register Value (High)(406306)00 * 2563
Register Value (Low)(406306)00 * 2562
Register Value (High)(406307)00 * 2565
Register Value (Low)(406307)00 * 2564
Register Value (High)(406308)03 * 2567
Register Value (Low)(406308)00 * 2566
Value = 0 +... + 0 + 316 * 7.206 x 1016
Value = 2.1617 x 1017
#4
The DT1150 electronic trip unit supports both reading and writing (changing) the status of the ARMS mode.  The ARMS status is held in message 59 of the INCOM 3 C 9 "Read Setpoints Buffer".

From page 49 of the latest IL17384 (Part C - Protective Relays and Trip Units INCOM/IMPACC protocol guide)


Note: "not changeable" means the mode was set by the switch and software cannot change the state unless the switch is  off.

Access the DT1150 Setpoints Buffer - Maintenance Mode status using Modbus messages:
Setpoints Buffer Description command 3 C 9 is an Incom command that can be used to poll Maintenance mode status.
Message 59 of the response data indicates Maintenance Mode Status.

Using the Modbus MINT this setting change read or changed by sending different Modbus RTU message.

The screenshots shown below are based on the ComTestPro Modbus utility available for free from http://www.baseblock.com/PRODUCTS/comtestpro.htm

On the Modbus master side:
Using func code 16
Write C3BEh to 6000h
Write 9002h to 6001hM
Note the 2 in 9002 is the Incom address



Then with function code 3 read 122 registers from 6000h


The 212th byte after the Modbus message byte count [F4h] is byte 0 of Message 59 which is Maintenance mode status.

Byte 212 highlighted below indicates changing from 02h to 03h, confirming toggle of Maintenance Mode.

Maintenance Mode is OFF

WRITE to 6000h/6001h
Baseblock ComTest Pro for Modbus Devices, Version: 2.0.5.1
Clear Log : Start > 11/23/2015 11:07:43 AM           
11:07:56.517: Com1, Baud Rate: 9600, Data Bits: 8 Bits, Parity: None, Stop Bits: 1 Stop Bit
11:07:56.517: Echoback: Off, RTS Control: Off, Transmit Delay: 5 ms, Response Delay: 3000 ms
11:07:56.520: Write Holding Register(s)
11:07:56.520: Device Address: 02h, Register: 6000h, Number of Registers: 2
11:07:56.521: |-> Write Register: 6000h, Number of Registers : 2
11:07:56.528: -> [02h] [10h] [60h] [00h] [00h] [02h] [04h] [C3h] [BEh] [90h] [02h] [E5h] [48h]
11:07:56.567: <- [02h] [10h] [60h] [00h] [00h] [02h] [5Fh] [FBh]



READ from 6100h
11:08:59.881: Com1, Baud Rate: 9600, Data Bits: 8 Bits, Parity: None, Stop Bits: 1 Stop Bit
11:08:59.882: Echoback: Off, RTS Control: Off, Transmit Delay: 5 ms, Response Delay: 3000 ms
11:08:59.885: Read Holding Register(s)
11:08:59.885: Device Address: 02h, Register: 6100h, Number of Registers: 122
11:08:59.885: |-> Read Register: 6100h, Number of Registers : 122
11:08:59.895: -> [02h] [03h] [61h] [00h] [00h] [7Ah] [DBh] [E6h]
11:09:00.289: <- [02h] [03h] [F4h] [3Dh] [00h] [89h] [0Ah] [00h] [00h] [00h] [00h] [FDh] [00h] [FFh] [E7h] [A0h] [00h] [00h] [00h] [00h] [00h] [01h] [04h] [D0h] [00h] [28h] [07h] [28h] [00h] [05h] [64h] [FEh] [00h] [03h] [02h] [14h] [00h] [F0h] [14h] [0Ah] [00h] [05h] [32h] [FFh] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [78h] [14h] [05h] [00h] [03h] [FFh] [0Ah] [00h] [32h] [0Ah] [05h] [00h] [00h] [FEh] [14h] [00h] [78h] [0Ah] [05h] [00h] [01h] [FFh] [19h] [00h] [64h] [0Ah] [01h] [00h] [03h] [FEh] [0Ah] [00h] [32h] [0Ah] [01h] [00h] [00h] [FEh] [00h] [00h] [00h] [00h] [64h] [00h] [00h] [02h] [00h] [00h] [00h] [00h] [19h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [55h] [00h] [01h] [FEh] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [0Eh] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [02h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [79h] [02h]


Note the 02h value in the 59th message.  From Maintenance Mode Action field above, 02h is confirmed to be OFF (not changeable).  However, what the really means is that the ARMS was switched off by the switch on the trip unit.  Since the switch is off, you can override that value in software.

Maintenance Mode is turned ON

WRITE to 6000h/6001h
11:10:19.387: Com1, Baud Rate: 9600, Data Bits: 8 Bits, Parity: None, Stop Bits: 1 Stop Bit
11:10:19.387: Echoback: Off, RTS Control: Off, Transmit Delay: 5 ms, Response Delay: 3000 ms
11:10:19.395: Write Holding Register(s)
11:10:19.400: Device Address: 02h, Register: 6000h, Number of Registers: 2
11:10:19.403: |-> Write Register: 6000h, Number of Registers : 2
11:10:19.412: -> [02h] [10h] [60h] [00h] [00h] [02h] [04h] [C3h] [BEh] [90h] [02h] [E5h] [48h]
11:10:19.451: <- [02h] [10h] [60h] [00h] [00h] [02h] [5Fh] [FBh]


READ from 6100h
11:10:29.813: Com1, Baud Rate: 9600, Data Bits: 8 Bits, Parity: None, Stop Bits: 1 Stop Bit
11:10:29.817: Echoback: Off, RTS Control: Off, Transmit Delay: 5 ms, Response Delay: 3000 ms
11:10:29.823: Read Holding Register(s)
11:10:29.827: Device Address: 02h, Register: 6100h, Number of Registers: 122
11:10:29.831: |-> Read Register: 6100h, Number of Registers : 122
11:10:29.840: -> [02h] [03h] [61h] [00h] [00h] [7Ah] [DBh] [E6h]
11:10:30.232: <- [02h] [03h] [F4h] [3Dh] [00h] [89h] [0Ah] [00h] [00h] [00h] [00h] [FDh] [00h] [FFh] [E7h] [A0h] [00h] [00h] [00h] [00h] [00h] [01h] [04h] [D0h] [00h] [28h] [07h] [28h] [00h] [05h] [64h] [FEh] [00h] [03h] [02h] [14h] [00h] [F0h] [14h] [0Ah] [00h] [05h] [32h] [FFh] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [78h] [14h] [05h] [00h] [03h] [FFh] [0Ah] [00h] [32h] [0Ah] [05h] [00h] [00h] [FEh] [14h] [00h] [78h] [0Ah] [05h] [00h] [01h] [FFh] [19h] [00h] [64h] [0Ah] [01h] [00h] [03h] [FEh] [0Ah] [00h] [32h] [0Ah] [01h] [00h] [00h] [FEh] [00h] [00h] [00h] [00h] [64h] [00h] [00h] [02h] [00h] [00h] [00h] [00h] [19h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [55h] [00h] [01h] [FEh] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [0Eh] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [03h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [00h] [84h] [C1h]


Since the payload in INCOM messages is 24-bits long, and since Modbus RTU messages have 16-bit registers, the Modbus MINT uses two 16 bit registers (4-bytes) for one INCOM message. 


The DT1150 setpoint Buffer is 61 messages (61*4 = 244 [0xF4] bytes long).   Note the 03h value in the 59th message indicating that ARMS mode is activated via a switch or contact closer (it would be 01h if it were activated via the communications channel)

Changing this value is much more involved compared to simply reading it since the Modbus MINT requires that each separate INCOM message be sent as a separate Modbus message (and the Setpoint command has 61 separate messages plus a checksum message for 62 total!)  See INCOM Pass-Through Messaging via Modbus MINT for more details on how this is done.
#5
3-Phase Power / Re: Power Systems UPS
May 15, 2018, 03:23:24 PM
Here's an updated video version of me giving this presentation. 

With this class I only had about 25 minutes so didn't cover all the material. 

Also, you'll notice the audio changing during the presentation.  What happened was that my lavalier mic wasn't plugged in completely to my digital recorder and I would get popping or other noise.  During those times the audio recorded from that mic was unusable. 

So, instead I switched over to the slightly less clear microphone on the computer or as a third backup, the microphone on the video camera recording the presentation.

#6
Another update.  Click image below to play video of me giving this presentation:
#7
Another update:
#8
3-Phase Power / Re: Power Systems Rules of Thumb
May 15, 2018, 03:07:22 PM
Here's another update on this same material...

#9
Modbus / USB to RS-485 adapter for Computer
February 15, 2018, 08:14:59 AM
Since the mMINT communicates on Modbus using RS-485 and since most computers and laptops don't have an RS-485 port you might ask "how do I talk to the mMINT?"

Here's an article that discusses one very inexpensive method.

#10
Modbus / Low cost 485 adapter for your computer
February 12, 2018, 05:05:57 PM
Modern computers are no longer supplied with serial ports (other than Ethernet and USB), and even back when they did they were supplied, they were RS-232.  Even then to get an RS-485 connection, you'll need a converter.

There are ton of high quality converters from companies like B&B Electronics, but if all you want is an inexpensive 2-wire USB to RS-485 converter, this one has been tested and works fine with the VBA_COMMS program.

Don't expect it to withstand the rigors of an industrial environment, but if you are looking for a low cost way of programming the Modbus MINT, this is a great choice (at least in February 2018 when this article was written).




Here's a wiring diagram showing how the JBTech USB to RS485 adapter would be wired to the Modbus MINT (mMINT).  Note that I used electrical tape to secure the cable to the USB adapter.  The screw terminal landing on the USB adapter is not very robust.


#11
3-Phase Power / Induction Motor Theory
January 15, 2018, 02:00:12 PM
Not sure how helpful this will be, but I presented a talk on how an induction motor operates.  Covers some basic rules about Faraday's Law, Lorenz Forces and just in general how you convert electrical current into motion. 

HTH
#12
Modbus / Re: Modbus MINT - 02 Illegal Address exception
September 01, 2017, 11:39:41 AM
Have you attempted to read what should be a valid register and you get the Modbus Exception Code 02 (Illegal Address) or 03 (Illegal Data Value)?

Two fixes:

  • Write a 0 to 42001
    Writing a zero to this register relaxes the error checking on the mMINT such that if you read a block of registers and one or more of those registers within that block are not supported by the connected device at that address, the mMINT will "zero fill" the response and not send a 02 exception
  • Extend the length of block read to include prior registers
    For example, attempting to read frequency (406197) alone on a DT1150, even if the 42001 register is set to zero can result in an 02 exception.  The fix is to read the prior register 406195 [3-phase apparent power factor] and frequency 406197 as a complete range.  For the PM3, that trick doesn't work and you need to back up to start reading at register 406187.  Note that for this trick to work in either case, 42001 must also be set to 0.  Also, the starting register for this block depends on the device!  While starting at 406195 works for the DT1150, to read frequency on the PM3 you must start by reading 406187 and reading the 12 subsequent register pairs all the way to 406198 to pick up the last register of the 32-bit register pair for frequency (406197/406198).

Click on the image below to view a video explaining this problem with the mMINT and how to fix it (just set 42001 to 0 and make sure you start reading registers at a proper "boundary").

#13
Video Tutorials / Directory
June 06, 2017, 09:54:02 AM
These videos are mostly throughout this website.  I've just copied them here to a single page for convenience.






































































LTSPICE simulation export, resampling and decimation tutorial  https://pps2.com/v/s/1/ltsd.php
Low Voltage Underground Utility Networks  https://pps2.com/v/s/1/nwp.php
Ethernet Networks  https://pps2.com/v/s/1/etht.php
Using Excel to Display Waveforms and Phasor Diagrams  https://pps2.com/v/s/1/opd.php
Using Excel to Display Three-Phase Phasor Diagrams From X-Y Data  https://pps2.com/v/s/1/tpd.php
SFTP Connection to PXMP Meter  https://pps2.com/v/s/1/occn1.php
Using Excel to Generate and Display 3-Phase Harmonics  https://pps2.com/v/s/1/3h.php
Adding the Analysis Tool-Pack to Excel  https://pps2.com/v/s/1/atp.php
Calculating, Displaying and Normalizing FFT Collected From Multiple Devices  https://pps2.com/v/s/1/ceifft.php
Measuring Harmonic Attenuation Using Programmable Phase-Shifted Transformers  https://pps2.com/v/s/1/hmtc.php
Performing Arbitrary Math Functions Within COMTRADE Excel Importer Program  https://pps2.com/v/s/1/cei_math.php
Comparison of Performance Using Zone Selective Interlocking (ZSI) Versus Arcflash Reduction Maintenance System (ARMS)  https://pps2.com/v/s/1/zsi_arms.php
Understanding Differential Relay and CT Matching  https://pps2.com/v/s/1/diff_relay.php
Using the COMTRADE Excel Importer to Determine RMS Values  https://pps2.com/v/s/1/cei_rms.php
Understanding Security When Connecting to a Java Enabled Power Xpert Meter  https://pps2.com/v/s/1/pxmv.php
Harmonic Summation and Cancellation (Phase and Ground)  https://pps2.com/v/1/hmc.php
LTSPICE Quickstart Tutorials Part 1:   https://pps2.com/v/s/1/lts.php
LTSPICE Quickstart Tutorials Part 2:   https://pps2.com/v/s/1/ltsb.php
LTSPICE Quickstart Tutorials Part 3:   https://pps2.com/v/s/1/ltss.php
Power Systems Rule of Thumb (Recording of Instructor Led Class)  https://pps2.com/v/s/1/yg_1.php
(New Version) Power Systems Rule of Thumb (Recording of Instructor Led Class)  https://pps2.com/v/s/1/yg_1a.php
Using Excel to Create Harmonic Trend Viewer for PXM4/6/8K Meters  https://pps2.com/v/1/htv.php
Comparing Fault Current Calculations using "Z Method" Versus the "R+jX Method"  https://pps2.com/v/1/ZvRX.php
Designing Higher Efficiency Mission Critical Power Systems  https://pps2.com/v/s/1/yg_4.php
(New Version) Designing Higher Efficiency Mission Critical Power Systems  https://pps2.com/v/s/1/yg_4a.php
Power System Load Flow and Power Factor Correction Calculations (Recording of Instructor Led Class)  https://pps2.com/v/s/1/yg_3.php
(New Version) Power System Load Flow and Power Factor Correction Calculations (Recording of Instructor Led Class)  https://pps2.com/v/s/1/yg_3a.php
Power System Protection and Coordination (Recording of Instructor Led Class)  https://pps2.com/v/s/1/yg_2.php
(New Version) Power System Protection and Coordination (Recording of Instructor Led Class)  https://pps2.com/v/s/1/yg_2a.php
Predicting, Measuring and Abating Transients on Medium Voltage Systems with Vacuum Switching  https://pps2.com/v/1/cp.php
Modbus MINT Programmer Tutorial  https://pps2.com/v/1/mmint08.php
Modbus MINT Programmer Cloud Backup and Restore  https://pps2.com/v/1/br.php
Modbus MINT Programmer Issuing Control Commands to INCOM Device  https://pps2.com/v/1/control.php
Creating PXG900 Offline Configuration File  https://pps2.com/v/s/1/sstd0.php
Differential Ground Fault Sensing  https://pps2.com/v/1/dgfs.php
#14
Legacy Motor Control / Westinghouse Advantage MCC
April 20, 2017, 02:21:49 PM
The Advantage MCC was introduced in 1991 and was Westinghouse's first networked motor control. 

I wrote a paper on this way back in 1993 entitled "Low-voltage motor control centers utilizing microprocessor technology".  See http://ieeexplore.ieee.org/document/231982/

Download the Instruction Booklet IB 8922-1 attached below.
#15
Legacy Motor Control / Westinghouse Type W MCC
April 20, 2017, 01:55:24 PM
Legacy Westinghouse MCC that was available from roughly 1965 to 1979

Download the instruction book IB12-129 dated July 1978 below.

You can learn more about vintage Westinghouse products (and parts for those products) at http://www.eaton.com/ecm/groups/public/@pub/@electrical/documents/content/ca08100014e.pdf