Expanding PAC Manager


[B]Customize your PAC Manager menu options for easier data entry![/B]

Those of you who happened to read the new “Wireless Ad-Hoc Mode Configuration Tech Note” (form 1970), might have noticed a trick we did with PAC Manager: we[B] added our own custom menu option[/B], with one little text file!

What is this CIW file for? and How does this work?

Besides making it easier to change a certain group of memory-mapped values–like those needed to configure ad-hoc mode on your Opto 22 wireless device–you can also use a file like this to group together any mem-mapped values on one specific device or several different devices.

   For example, suppose I just got my iPAC app to view and control Opto 22 tag values from my iPhone. I may want to give all my Ethernet brains and controllers a name, username, and password. If I'm really extra-careful about security, I might want to change those values frequently. This is much easier to do if they're all in one place: under a PAC Manager menu option you've created just for this purpose.

You just need one little text file that looks like this:
(Feel free to borrow the ad-hoc example file and modify it to suit your needs)

In this example, I’ve replaced the word AUTO (that you’ll see in the ad-hoc example) with a couple different IP address of devices I use a lot. (The AUTO keyword tells PAC Manager to just use the device you’ve selected at the top of the Inspect Opto 22 Device window.)

In my text file–which must have a .CIW extension for PAC Manager to read it in, I’ve included the mem map addresses, formatting and access information, as well as a description of each piece of data to be (in this case) read and written from our new PAC Manager window, shown below.

My new menu options shows in PAC Manager in Tools > Inspect > Other. OptoMagically, I can enter new values for this set of mem map locations–on more than on device–all in one convenient window!

Notice how my new menu option corresponds with that pink menu string above, and the descriptions highlighted in yellow are the prompts that show on my new custom window. Now it’s easy for me to change those few values quickly, all in the same location. Neat-o!

When you build your file, give it a .CIW extension so PAC Manager can read it in. Put this file in the same folder as your Manager.exe file. That folder may be something like this, especially if you selected the defaults, like I did, during the PAC Project install:

C:\Program Files (x86)\Opto22\PAC Project 9.0

Write on,


Hi All,

Here’s a little more detail for those of you who might want to add your own custom pages to PAC Manager. The attached zip file includes some .CIW examples for:

  • Ethernet/IP Config info
  • Firmware version list
  • Status Read short version
  • TCP Diag Info list

Also, here’s more detail on the correct syntax for these files:

Lines that begin with a semicolon ; are comments.

Description text and category text should be enclosed in double quotes.

%AUTO% and %DEFDEVICENAME% can be substituted in description or category text.

Special keyword lines begin with KEYWORD= where KEYWORD is:
• MENU - name that appears on Inspect Mode – Other menu button
• DEFDEVICENAME - sets the default device name for subsequent lines
• CATEGORY - line with no data, just a caption that is displayed
• BLANK - inserts a blank line into the display page

Regular lines will be parsed as six columns of data.
• Column 1: IP Address or Hostname
[INDENT]o Use dot notation ip address or a hostname.
o AUTO substitutes the current Inspect mode IP Address or Hostname
o DEFAULT substitutes the current value of DEFDEVICENAME[/INDENT]

• Column 2: Memory Map Address

• Column 3: Data Type
[INDENT]o Choices are UINT, INT, BOOL, FLOAT, TEXT;nn, and BYTE;nn
o where nn is the # of characters or bytes[/INDENT]

• Column 4: Display Type
[INDENT]o Choices are UINT, INT, FLOAT, TEXT;truetext;falsetext, HEX, IP, VER and MAC
o where truetext is the text to be displayed when a BOOL is true and
o and falsetext is the text to be displayed when a BOOL is false. Both are optional.[/INDENT]

• Column 5: Access Rights
[INDENT]o Choices are R, W and RW for Read, Write and Read/Write[/INDENT]

• Column 6: Description


Hi All,

Here’s another fun PAC Manager customization option, and the answer to: Why is that exclamation point there?

Specifically, the exclamation point that shows up here on the Inspect > Status Read page in certain situations. If you click on that button, you’ll see a message like this explaining the cause of the warning:

Warnings you may see on a standard installation of PAC Manager (yellow exclamation)

[INDENT] F03A0004 Warning! The OptoMMP port is not set to the default value of 2001.
F03A0008 Warning! The Modbus port is not set to the default value of 502.
F03A000C Warning! The SNMP port is not set to the default value of 161.
F03A0010 Warning! The FTP server port is not set to the default value of 21.
F03A0074 Warning! The Control Engine port is not set to the default value of 22001.
F0380004 Warning! This device is set to Always BootP on Powerup.
Warning! The analog and high density digital scanner is stopped.
Warning! The digital 4-channel scanner is stopped.
Warning! The control engine is stopped.
[/INDENT]! :cool:
If you’d like to add your own warnings about the Status Read area (they’ll be announced by a [B]red [/B]exclamation point), put a file like the one attached in that same PAC Manager directory (mentioned in previous post), the install directory. The filename must be: [B]Manager_StatusRead.cmp [/B]

Each time Inspect mode is entered, this file is read. (Pressing “Refresh” won’t re-read the file, but if you press “Status Read” again after a file change it will update.)

The file contains a list of memory map addresses from the Status Read page, a value to be compared (=, !=, <, > operators are allowed) and a message to be displayed if the comparison is true. It works on T/F (false=0), integer, and float types. It cannot currently be used to monitor a random memory map location. It is meant to flag items on the Status Read page that are out of the ordinary.

Here’s a some values you might want to check/include, which you’ll find in the sample attached file:

[INDENT]F0300070,>,0,Late Collisions are logged.
F0300074,>,0,Excessive Collisions are logged.
F0300110,>,0,Ethernet MAC resets are logged.
F0300114,>,0,Digital output point resets are logged.
F0300118,>,0,Digital interrupt failures are logged.
F03000C0,>,0,Module 0 has been rediscovered.
F03000C4,>,0,Module 1 has been rediscovered.
F03000C8,>,0,Module 2 has been rediscovered.
F03000CC,>,0,Module 3 has been rediscovered.
F03000D0,>,0,Module 4 has been rediscovered.
F03000D4,>,0,Module 5 has been rediscovered.
F03000D8,>,0,Module 6 has been rediscovered.
F03000DC,>,0,Module 7 has been rediscovered.
F03000E0,>,0,Module 8 has been rediscovered.
F03000E4,>,0,Module 9 has been rediscovered.
F03000E8,>,0,Module 10 has been rediscovered.
F03000EC,>,0,Module 11 has been rediscovered.
F03000F0,>,0,Module 12 has been rediscovered.
F03000F4,>,0,Module 13 has been rediscovered.
F03000F8,>,0,Module 14 has been rediscovered.
F03000FC,>,0,Module 15 has been rediscovered.
F030003C,=,0,ENET 1 - Default Gateway is empty (route to the Internet).
F0300040,=,0,ENET 1 - DNS (Domain Name Server) is empty.
[/INDENT]Manager_StatusRead.zip (450 Bytes)

[SIZE=2]Happy customizing!


Driven by the Ad Hoc Mode for SNAP-PAC & EMU I started wondering if the groov could do the same. I looked at the configuration section and there is no AD Hoc option.


Hi Fernando,
Interesting question. Do you think that would be an important feature to have? We’d love to hear about an application you might have in mind for this!


Hey Fernando… Subscribe to Opto News (or Groov Updates)… There might be something interesting for you to read soon…