S7 Parameter Tracking ...

deemz

Member
Join Date
Dec 2006
Location
Burlington
Posts
9
Here's my problem: I need to track parameters such as setpoints in about 100 S7-300 PLC programs that I receive back from suppliers and unfortunately the structure of our DB blocks is such that these parameters that I want to track are mixed in with values that change at runtime so using Simatic Manager's built-in compare utility is hopeless.

I found a thread on here about S7XP that seems like it would solve my problem. Unfortunately, it looks like this software is no longer available.

What I am looking for is a way to compare different revisions of off-line code and detect parameter changes and display them in a clear and simple format.

Is there any utility out there that I could do this with?

I'm thinking if there was any way that I could "suck up" DB values from the offline code itself without actually running it on a processor to a csv, I could write macros in excel to do this kind of comparison easily. Is that even a possibility?

Thanks
 
Last edited:
Step 7 has a "command interface" which allows you to control the Step 7 functions from an external application.

What you can do with this:
- Download all DBs from CPU into your offline project
- Automatically export Datablocks to AWL sources

I would use a versioning system like SVN (Subversion) and checkin the source files into the versioning system.
Or you can use a simple command line tool like unix "diff", which is also available for windows, to find differences between the DB versions.

Here's a sample code in C# which exports all DBs:

Code:
        static void exportDBs(string projectName, string programName)
        {
            Simatic S = new Simatic();
            string filename;

            Console.WriteLine("Blocks overall: " + S.Projects[projectName].Programs[programName].Next["Bausteine"].Next.Count);

            foreach (S7Block bl in S.Projects[projectName].Programs[programName].Next["Bausteine"].Next)
            {
                if (bl.ConcreteType == S7BlockType.S7DB)
                {
                    filename = "C:\\Temp\\export\\" + bl.Name + ".awl";
                    Console.WriteLine("Exporting source to: " + filename);
                    try
                    {          
                        bl.GenerateSource(filename, S7GenerateSourceFlags.S7GSFDoOverwrite);
                        
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Error: " + ex);
                    }
                }
            }
        }
 
Last edited:

Similar Topics

Greetings, I am working on a project and I would like to scale %AI to -10.0 to 10.0 VDC. The module Input data is stored as a 16 bit Integer and...
Replies
4
Views
66
Hi All, This is my first PowerFlex 755 drive setup and I am having an issue with when I start the drive it runs at my minimum speed 5Hz, but...
Replies
10
Views
417
Hi Everyone, I am trying to add a constant value (such as a string) into the parameter file. I put the string in " " but it does not work. would...
Replies
2
Views
185
I confess, I always have a little frustration trying to accomplish tasks in CCW that are simple in Studio 5000. My latest task is with timers...
Replies
5
Views
468
Hi All, I was wondering if it is possible to use parameter files that can be passed to a second page eg: --HOME ---PUMP 1 FACEPLATE (With...
Replies
4
Views
1,132
Back
Top Bottom