This project is read-only.

Issues Getting Started

Nov 5, 2012 at 4:14 PM

Hi, I've been having a lot of trouble getting the iPDC started. I have connected to the database, and have everything installed but do now know how to get anything to talk to anything else. Could someone please give a quick step-by-step instruction on how they got their PDC started? Thanks.

Nov 5, 2012 at 4:20 PM
Edited Nov 5, 2012 at 4:25 PM

I suppose to be more specific, when I attempt to connect a simulation PMU to the PDC, it asks for an IP address but I never put in a IP address for the PMU server. Is this server running off my local machine? is there a "default" address?

Nov 6, 2012 at 5:45 AM

Hi Daniel,

The discrepancies & installation instructions are given in the README file for iPDC, PMUSimulator, and DBServer modules. A step-by-step instructions is given in the iPDC-UserManual for how to getting started with all three modules independently. The latest iPDC-UserManual for v1.3.1 is available is available on the iPDC websites.

When you run the PMU Simulator on the machine, it will run as a server/PMUServer and by default take machine IP to run simultaneously TCP & UDP servers.  iPDC will run as a client when communicating source PMUs. Follow the Tech Report & UserManual of iPDC, and you will see how it works.

You have also mentioned the error "Not a valide source ID code. Try again"? Remember that all the PMUs and PDCs id must be unique integer.

I think this helps.



Nov 14, 2012 at 1:39 AM

Hi Nitesh.

Thanks for your help. I've also stumbled on some problems. I was hoping you could clarify the inputs required for the "Enter Phasor Channel Name" screen with the PMU simulator. what type of value are we supposed to put after the "max limit 1" data field? Thanks!

Nov 14, 2012 at 1:50 AM


I was wondering how the format of the header in the PMU simulator was supposed to be? Thanks again.

Nov 16, 2012 at 4:03 PM


I was wondering where your SQL Server stores the data? We got something from the PMU simulator to send to the PDC and the terminal holding the DBServer had information updating it, but we could not find the data anywhere. Thanks again.

Nov 20, 2012 at 4:39 AM

Sorry Daniel couldn't reply you earlier, I was on the festive holidays (Diwali). So here are your answers,

  • Inputs required for the "Enter Phasor Channel Name" screen with the PMU simulator : In the IEEE C37.118 protocol standard there is a field named "CHNAM - Phasor and channel names—16 bytes for each phasor, analog, and each digital channel (16 channels in each digital word) in ASCII format in the same order as they are transmitted". So for each phasor, analog, and digital value you have to mention its identical name
  • Format of the header in the PMU simulator : Header Frame is one of the frame type defined in the IEEE C37.118 protocol, and PMU Simulator follows the same format mentioned in that. "Header Frame - shall be human readable information about the PMU, the data sources, scaling, algorithms, filtering, or other related information". Header Frame format would be Common fields like other frames have + information that you have entered in PMU Simulator + CRC.
  • DBServer : First you have to create iPDC database in your MySQL database as given in the README. After that you have to install DBServer via 'make' command. Then you can run ./DBServer to get the data in iPDC-database. Remember that DBServer is working over socket programming so you can run it on the same machine or remote machine also, so please enter the right IP address while filling the iPDC Setup Details.
  • Max limit 1" data field : 'Max Limit' is used only when you select fixed point representation of phasor and analog values. In this case to use full scale of 16 bits fixed representation provide the maximum anticipated value of the measured signal.

    For example you are measuring voltage in 400 kV system. Then the maximum value of this signal wont go beyond 500 kV. This way any value of voltage from 0 to 500 kV will be scaled in range of 0x0000 to 0xFFFF.

    If smaller value than 500 kV is used then it may cause overflow and wrong number to be transmitted. Say if you enter 'max limit' of 410 kV and measured voltage is greater than 410 kV then fixed point number will get saturated at 0xFFFF for all such values, and PDC will only report the measured value as 410 kV.

    If a larger value like 1000 kV is entered then we lose accuracy at lower end measurement.

    So the guideline is to enter larger number than maximum anticipated value of the signal, but it should not be absurdly larger.

Hope this helps.



Nov 30, 2012 at 3:11 PM
Edited Jan 11, 2013 at 3:56 PM


Thank you for your help so far. I hope that you had a good holiday season. I am wondering what it means when I start up the iPDC and it can't bind. I assume that it means that it can't bind to the specific IP address. The problem is I created a new PDC and am trying to connect it to a database that used to hold another PDC's information in the cfg file. Do I need to clear out the cfg file? And if so; how? Thanks.

Jan 15, 2013 at 4:26 PM


Hi, how are you? I was wondering how you got the different 'analog', 'phasor', 'time frame', and 'digital' text files found in the DBServer directory to combine and produce a functional .csv file? I'm trying to verify the data the PMU simulator sends and match it up with the data the database receives. Also, could you tell me the column names of each of the columns on the different .txt files? There is a bunch of data, but I am not certain what is what. Thank you.

Jan 16, 2013 at 4:50 PM

Hello Daniel,

                 I am not sure I have understood your question completely. The .csv file is in fact input to the PMUSimulator. PMU simulator reads .csv file and make data frames according to the data given in .csv file. The file format for .csv file is given in the manual. Roughly the columns corresponds to 'timestamp', phasor magnitude, phasor angle in degrees (for as many phasors as configured), frequency, rate of change of frequency, analog values (for as many analogs as configured). Right now we don't support digital channels through .csv file.

The .txt files are produced by DBServer application. It is parsing of the data obtained from iPDC. DBServer separates out phasor, analog and digital part of the data frame. The 'time frame' table is for diagnostics to check latency of the communication network. Ideally you can obtain one-to-one correspondence between .csv file and .txt file. But you will have to read the manuals and also check the .txt and .csv file carefully.

The format of .txt file can be obtained from the column names of the tables of database IPDC. These .txt files are used to bulk update the mysql database.

Please feel free to ask any further questions. We will try to answer it to best of our ability.

With Regards

Gopal Gajjar



Jan 17, 2013 at 3:18 PM
Edited Jan 17, 2013 at 4:00 PM


Thank you for the help. I'm sorry my question was vague. I'll try to elaborate. The iPDC's writes to 5 different .txt files (analog, digital, frequency, phasor, and frame time). How does this get placed into a .sql file for mysql to read? How can I see my data in a database or some type of more organized manner than 5 different .txt files? Also, could you please explain how the columns in the text file work as well? For example, on the PHASOR_MEASUREMENTS.txt, the columns appear as:

PMU ID #, PMU ID #, 1358266603 (not sure what this is), 0 (this moves at a standard 40000 jump until it hits 100000 before going back to 0), the phasor channel name, " (a quotation mark), a number, a number. I've looked through your manual but I can't figure out the columns of the .csv nor the columns of the .txt file. Thank you.

Jan 17, 2013 at 6:56 PM

Hello Daniel,

                  We use system call to 'mysqlimport' to import data from .txt file to mysql database. You can see the relevant code in parser.c file of DBServer.

To see the data in database you have to use mysql. If you are uncomfortable with mysql, there are some frontends available for it like mysql wokrbench or phpmysql etc.

There is a long term pending goal from our side to export data in IEEE Comtrade format. If you or someone you know are willing to do it, we can get you started, and provide you all help.

Will explain the format of .csv file in a separate mail.


Jan 22, 2013 at 4:26 PM



Thanks, we got all the table descriptions from the mysql command line. We also used the mysql workbench to create a schema based off of your tables and we noticed that while the Phasor and Analog tables have 1:n connections with Phasor_Measurements and Analog_Measurements, respectively, however, Digital and Digital_Measurements have no such relation. We were also wondering about why there was a Main CFG table and a Sub CFG table, and why you chose to split it into two tables as opposed to having it be one table.



Mar 28, 2013 at 1:17 AM
Dear Mr. Gopal,

Please, I´m new and I´m trying to use the CSV file into PMU simulator. This CSV file was obtained from a Transitory Electromagnetic Software (ATP).

How can I obtain the angle from CSV file in ipDC? Could you send me any additional information about csv file?

So, in this moment, I´m trying to stablish a connection between PMU Simulator and ipDC. My goal is to trace the graphic: Active Power x Voltage to determine the Voltage Stability in Permanent Regim.

Is it necessary to create an adapter to calculate the Active Power or it´s possible to obtain it directly from ipDC, in graphic measurement?

Other question is that we just want, in this moment, to have access to SQL DB to treat the important data, as: voltage, angle and current in real time, using Database real time solutions.

Please, could you help me?

Best Regards,

Rafael Fernandes
Power System Electrical Engineer
Mar 28, 2013 at 7:30 PM
Hello Mr. Rafael,
            Nice to know about your interest in iPDC.
The CSV file for ATP/EMTP cannot be directly used with PMU simulator. The PMU simulator accepts CSV data in phasor format i.e. voltage magnitude and angle, obtained at rate of one sample for every power frequecy cycle i.e. one sample per 20 ms. for 50 Hz system. The obtained from ATP is most probably the instantaneous values and sampled at very high rate greater than 1 sample per 1 ms.

So you would be required to pass the ATP file through a phasor calculator to get a phasor magnitude and angle. iPDC cannot do it, but we have a separate matlab code to perform this. I can give you this program, but you might have to modify it a bit according to your requirement.

So regarding the question about Active power calculator also, the answer is same. You will require an external program to calculate it and make a suitable CSV file for iPDC.

The data for iPDC is stored in mySQL DB. You can access it back using any standard queries.

With Regards
Mar 28, 2013 at 8:33 PM
Edited Mar 28, 2013 at 8:55 PM
Hi Gopal, thanks a lot for your fast answer and support!

Please, could you send me your Matlab code for we use in our project? My email is: Does the PMUsimulator only send to ipDC the constants values or send phasor values? Example: V=10Volts, 12Volts, etc...

Best Regards,

Rafael Fernandes
Mar 28, 2013 at 8:53 PM
Edited Mar 28, 2013 at 8:54 PM
Hi Gopal, my email is:

Rafael Fernandes
Power System Protection Engineer
Jul 3, 2013 at 10:01 PM

I was trying to communicate between iPDC on my base machine and PMUsim on virtual machine (on same desktop). Both machines have different IP addresses too but still not able to see the similar screen as in screenshot provided on page no. 15 user manual . Can anybody help me sort this one?

And it will be great help if anyone can foreword me matlab code (mentioned in previous comments) for ATP files to extract info in .csv format for PMUsim.

Jul 11, 2013 at 2:30 PM

iPDC and PMU Simulator communication will definitely work, because its basically a client-server architecture independent of whether they are on the same machine or different machine or on virtual box. Please check your virtual machine networking settings. For cross check you could run a simple c program for client (on base machine) and server (on virtual machine) with the same settings and have them exchange any simple messages.

Mr. Gopal might be able to help you with the matlab code.
Jul 14, 2013 at 5:52 PM
Give me your mail Id, I will send the matlab code.
However remember this, the matlab code is for calculating the phasors from the instantaneous values obtained from ATP. It will not extract data from PL4 file to CSV or MAT file. For that you will have to use some thing like plotXY or pl4tomat.exe.

Jul 14, 2013 at 10:12 PM
Hi Mr. Gopal,
My email is: [email removed]
Thanks for feedback and support!
I´m so happy to participate of your group!

Rafael Fernandes
Expert Siemens Certified - SAG

Brazilian IEC TC95 MT04
Siemens Brasil
+55 11 9 7461 4951

Em 14/07/2013 13:52, nprjhjwa < [email removed] > escreveu:
pre {font-size:1.25em;}

From: nprjhjwa

Give me your mail Id, I will send the matlab code.
However remember this, the matlab code is for calculating the phasors from the instantaneous values obtained from ATP. It will not extract data from PL4 file to CSV or MAT file. For that you will have to use some thing like plotXY or pl4tomat.exe.