Wednesday, February 6, 2019

Siemens SIMATIC Step 7 Programmer's Handbook

Siemens SIMATIC Step 7 Programmer's Handbook

Siemens S7 Family
This handbook is a collection of programming overviews, notes, helps, cheat sheets and whatever that can help you (and me) program a Siemens PLC.
If you have experience with Siemens then please contribute.

Siemens Website Quick Links

This is a listing of tutorials and manuals found on the Siemens automation website that will get you started on the SIMATIC Step 7 software for S7-300 and S7-400 systems. From a new users perspective I’ve only heard disparaging comments about finding the right information on the Siemens’ website. I have to agree. Its information overload at it’s best. There’s a lot of different stuff there thrown together and found in different spots with very long URL addresses to add to the confusion.
Have no fear.  We’re here to help.  So we’ll look at the essentials for your journey.
  • The software if you haven’t got it yet
  • Getting a sense for the product line
  • Where to start with the manuals
  • Online training material
  • Downloadable Flash tutorials
Of course the best type of training is the hands on type but if that’s not an option then you’ll need to start digging in.

Who’s got the Software?

If you are just learning and can’t easily get the software then there are two options.
  1. Order the demo CD which will give you a free 30-day trial period.  
  2. Download a free working copy of Step 7 Lite.  There are differences between the regular version of Step 7 and Step 7 Lite but for learning purposes you can go along way with the free Lite version.  

First Things First

The first thing I like to do with a new product is get an overview of everything.  Getting used to part numbers and product groupings can go a long way with your comfort level.  The best thing for this isthe sales catalog (ST 70 – 2005).  You can also order a hard copy.

Where to Start?  Manuals, manuals, everywhere!

Once you install the Step 7 software there will be a directory under the SIMATIC folder called Documentation that includes the most important manuals.  Hard copies can be ordered with number 6ES7810-4CA08-8BW1.  Here’s how I would digest them.
  1. Working with STEP 7 - This is a basic introduction to Step 7 which walks through an example of controlling engines.  While it’s not the complete picture it does ease you very well into the learning curve of the Step 7 software.
  2. Programming with STEP 7 Manual - Here’s the fuller manual for the programming interface which is also the same as the online help accessed by pressed the F1 key.
  3. Configuring Hardware and Communication Connections STEP 7 Manual - Everything to do with the Hardware Configurator.
  4. Statement List,  Ladder Logic, and Function Block Diagram Reference Manuals - These manuals contain both the user’s guide and the reference description of the programming language or representation type. You only require one language type for programming an S7-300/S7-400, but you can mix the languages within a project, if required.  If you’re more comfortable with Ladder Logic or Function Block Diagram then start there but sooner or later you’ll have to become familiar with Statement List.
  5. System Software for S7-300 and S7-400 System and Standard Functions Reference Manual - The S7 CPUs have integrated system functions and organization blocks included with their operating system, which you can use when programming. This manual provides you with an overview of the system functions, organization blocks, and loadable standard functions available in S7, and detailed interface descriptions for their use in your programs.

Training Material

There’s gold in that website if you just do a little digging!  If you’re having a tough go with the manuals then you should definitely download the training material.  There’s a lot more screen shots and even a picture of a balding pudgy guy to point things out to you. What more could you want?

Flash Tutorials

If you’re not the manual type (and even if you are) check out the Siemens Step 7 Flash tutorials.  These are very professionally done with a nice sounding narrator to take you through all the basics of the Step 7 software and hardware.

What's Next?

Of all the starting places to dig for more info I find the support section the best especially if you have a part number or key word you can search on. Clicking on the Product Support link will bring up a tree on the left hand side that can be expanded down to the product of your affection.  Good luck and happy hunting.
Siemens Website

Review of Siemens SIMATIC Step 7 Lite Programming Software

“Great taste. Less filling.”
Siemens Lite Beer
When one hears the words “Lite” and software you tend to think of software that’s not really usable. Depending on your needs this may not be the case with the Siemens STEP 7 Lite package. The four major limitations in STEP 7 Lite verses the more advanced STEP 7 package are:
  1. Support limited to the SIMATIC S7-300 PLC, the C7 all-in-one PLC and HMI, and the intelligent CPUs of the ET200 distributed I/O family. So no programming for the S7-200 or S7-400 PLC series.
  2. No networking whatsoever. Remote I/O racks (IM modules) are supported but there’s nothing for Profibus DP even if you have a DP port on your CPU.
  3. No support for multi-projects or HMI integration.
  4. No communication processors (CP) or function modules (FM) supported.
If you’re interested in more details then refer to our chart of differences between the Step 7 program packages. So there are quite a few major limitations with the Step 7 Lite software which may end your further reading of this review.
On the other hand, the current availability of a free download of the SIMATIC Step 7 Lite software makes it awfully tempting to take a look at it. If your only use of Siemens PLCs are an S7-300, C7 or ET200 in a stand alone application with no special needs (CP or FM) then I could highly recommend the Lite package. It has the same level of programming functionality as the regular Step 7 packages plus some nifty interface enhancements to make it easier on the eyes and on the brain. It is possible (though not easy) to convert any software created in the STEP 7 Lite to STEP 7 and visa versa keeping in mind the limitations of the Lite version. Since the packages bear a lot of similarities it will also be easy for the student to transfer any learning on the Lite package over to STEP 7.

First Impressions

For a user of the regular STEP 7 software the first thing to notice is there is no SIMATIC Manager. That’s because the Lite version doesn’t support multi-projects or networking. The STEP 7 Lite software opens right up to the editor screen.
S7 Lite First Screen Shot

The overall aim of the Lite package was to make the interface easier for new users. I think they’ve done that while making it friendlier for everyone involved. The added graphics and color are a welcome addition. Another nice friendly feature is the extended hover help on the menus and icons where clicking on the tool tip expands it into more help text. On that note all the pop up dialogs are clearer then its STEP 7 counterpart.
One of the major differences can be seen on the left hand side window. Pretty much everything the programmer needs for maintaining the project is neatly organized here. There’s even a convenient thumb tack to pin it or make it automatically slide in and out when needed.
On the right hand side is the old familiar tree structure of commands and blocks. It’s missing the quick little reference help window on the bottom which has been replaced by just hovering your mouse over the command to get a fuller title (the F1 key works just the same too). The FC and FB blocks have been moved from here to a more logical place in the project window on the left hand side.

The Left Side Bar – CPU Overview and Project Window

S7 Lite Side Bar
The top portion introduces a CPU box with easy access to controls, diagnostics (Ctrl+D) and setup of the CPU. That’s not something I feel is necessary to be there all the time so I minimized it. Too bad there’s no apparent way to just get rid of it all together.
The Project Window below it is great. Everything’s is here from hardware to documentation. Something that just thrilled me is the tabs below that separate the offline and online versions of the program. On the regular STEP 7 software there is often a confusion between when you are offline or online. STEP 7 Lite minimizes that confusion by also provided clearly differentiated color schemes for when you have a block open online. And if that wasn’t all, the symbols beside the hardware and each block instantly tell you of differences between the offline and online versions of your program. You can just hover the mouse over the symbol to get more detail.
It’s also nice to have all the blocks clearly color coded and nicely arranged. You can drag and drop then anywhere in the list. There’s even a new feature of “Category” which is simply an organizational label inserted between blocks. In this screen I’ve inserted the category “Engine Data” and “Special Data”. This could be really helpful for logically grouping blocks in larger projects.
I also like the new way of creating blocks. From the pull down menu select Insert | Block … and this nifty dialog box pops up with all the selections on it. Even the OB selection has a nice drop down box of all the OBs available with its symbolic name.

The Hardware Manager

The greatest change of all is the overhauled hardware manager. The layout is great and is to be expected without the need to factor in networking. Just drag and drop your hardware on the picture and away you go. There’s even a nice hardware comparison feature clearly showing any differences between the offline and online setups.
S7 Lite Hardware Manager

The Editor

Much of the editor is like its big sister STEP 7. One noticeable part that’s “missing in action” is the detail view that gives quick access to info, cross reference, address info, etc. One part I like is a slight revamp of the declaration table. Instead of the tree like structure it’s one simple table with a column indicating its declaration. That means no having to dig through the tree just to see all the declaration variables.
S7 Lite Editor

Conclusion

Other then what we’ve all ready listed there are no other major differences. The symbol table, monitor/modify (a.k.a. VAT), and the reference data are all very similar to STEP 7. Overall, if you can live with the limitations, the STEP 7 Lite version is a great little package. Hopefully some of the better implementations will find there way into the STEP 7 software.
P.S. One little caveat is that it kept crashing on my plenty beefy enough Windows XP Home computer. Save often, arrgh!

Step 7 Connecting, Downloading and Uploading

These are general guidelines for connecting, downloading and uploading from an S7-300 or S7-400 PLC. The following procedures were created using Siemens SIMATIC STEP 7 version 5.4 software.
To start, open the SIMATIC Manager.
Now follow the links below.

Connecting to the S7 PLC

The Programming Cables

There are three major types of programming cables:
1. The CP5512 card in a PCMCIA slot.

2. The PC Adapter using a serial or USB connection

3. An Ethernet cable

The CP5512 card and the PC Adapter can communicate on either an MPI or PROFIBUS port. Note that PROFIBUS is labeled as DP on the Siemens connection ports. These cables can piggyback on existing connectors. Be aware that the PC Adapter draws its power to work from the connection port so check the power LED for proper operation. The CP5512 card draws its power from the computer.
For Ethernet (TCP/IP) use a standard Ethernet cable from the computer to a CPU with an Ethernet port, a CP 343/443 module or a network switch all ready attached to the PLC network.

Checking Communications

With the programming cable plugged in, you can check for proper operation by clicking on the Accessible Nodes icon.

If communications are successful, you'll see a window pop up similar to the one below. If so, then close the Accessible Nodes window and proceed to the download or upload section.

If communication fails then you will receive a message like below.

This indicates that the cable is not in the right computer port or the cable is not plugged in properly.

Setting the PG/PC Interface

In order to start communication to the PLC you will need to match the "PG Interface" setting with the programming cable and protocol. To do this, select the menu Options > Set PG/PC Interface.

The following dialog box will open up displaying all the different interfaces (i.e. communication drivers).

Each cable has its own interface. For Ethernet select the TCP/IP interface for your computers network card. Be careful not to select your wireless Ethernet connection.
To get it working quickly it is best to select the interface with the Auto designation. This will discover working settings and use them automatically.
For the PC Adapter click on the Properties button and make sure the Station Parameters Address is a unique network address. It should not conflict with existing PLC and slave devices on the network. Also, check under the Local Connection tab and make sure connection selection matches the port the cable is connected into.
Once the proper interface is selected and the properties are set then click OK and use the Accessible Nodes window to check for successful communications. It should work. If not double-check the connection and cable. With the CP5512 and PC Adapter cables, you should use the MPI port, as this is the default connection for Siemens.
If this doesn't work then I don't know what to tell you.

Downloading

First, in order to enable the download menu commands, you must select the Block folder in the project's station you wish to download.

There are three methods of downloading.
  1. Partial download of selected blocks
  2. Full download of all blocks and system data
  3. Complete deletion of online PLC blocks and then downloading of all blocks and system data

Partial Download

Partial downloads are used in existing projects where only one or more blocks will be downloaded. To perform this type of download select the block(s) you wish to download and then select the PLC > Download menu item or the download button .

Holding down the Ctrl key or the Shift key allows more then one block to be selected at a time. Be careful though as the order of download will occur in the order that the blocks were selected. This may mean that an error will occur if a block is called before it is downloaded.
The CPU will need to be in Stop mode before downloading the System Data Block (SDB) as this is equivalent to a hardware configuration download. This is usually not necessary in a PLC that has all ready had its hardware configured. If you do download the system data, the following messages will prompt you through the transitions.


If the CPU is in Run mode then you will be prompted to Stop the CPU. The software will do the Run to Stop transition when you click OK.

After downloading the SDB you will be prompted to Run the CPU again.

Clicking Yes will automatically put the CPU back into run mode.

Full Download

To download all the blocks at once make sure you are in the Block folder and select the Edit > Select All menu item. Click on the Download icon . You will be prompted to overwrite any existing blocks and if you want to load the system data (see above).

Clearing the CPU Memory and then Downloading

The partial and full download methods above will overwrite existing blocks but will not any blocks from memory. In order to completely delete the existing program in the CPU and download a new project select the Blocks folder and then use the PLC > Download User Program to Memory Card menu item.

The following dialog box will pop up prompting you about the deletion of all the blocks and project data in the PLC. Click Yes to perform the operation.

After this, follow the normal download procedure.

Uploading

There are two methods for uploading. The first is when you have the original project and you want to preserve the symbols and comments. The second method, when you don't have the original project, will upload everything from the CPU but will have no associated documentation (i.e. symbols and comments).

Uploading to an Existing Project

With the existing project open, select the View > Online menu item.

This is the same as the Online button on the icon bar.

This will open up another window called the Online Partner. It shows the existing blocks inside the CPU. The Online version is indicated by the highlighted title bar.

There is a connection between these two versions so that uploading from the online partner makes sure to preserve all the symbols and comments. Be careful. After uploading, make sure to close the online partner and do all work from the offline version.
To upload individual blocks, select them in the Online view and choose the PLC > Upload to PG menu item. For a full upload, select the Block folder and do the same.

Upload without an Existing Project

Follow these steps when you do not have the original project but wish to upload the program for backup purposes. With an existing project open or a new blank project select the PLC > Upload Station to PG… menu selection.

In the next screen, fill in the slot the CPU is in (this is always 2 for S7-300) and the node address of the communication port on the CPU. In the case below we are talking to a CPU over MPI with node address 10.

After clicking OK, the whole contents of the PLC including all blocks and hardware configuration will be uploaded into a new station in the project.

While this project contains no documentation, it can be used as a backup to download later if needed.

Step 7 Lite, Step 7 and Step 7 Professional Differences

STEP 7 Lite

STEP 7

STEP 7 Professional

Configuring
PLCs
S7-300/C7
S7-300/S7-400/C7/WinAC
Modules
Digital, analog I/O, IFM
centralized only
Digital, analog I/O, IFM, FM, CP
centralized and distributed (DP)
Networking/communications
No
Time-driven, cyclic data transmission between automation components;
MPI, PROFIBUS or Industrial Ethernet
Distributed I/O
No
Yes
Alarm configuring (display->HMI)
No
Yes
Write/read to/from MMC
Yes, in CPU only
Yes, in CPU and direct on PG/PC
(updating of PLC operating system possible)
Export/import
Program, symbols
Program, symbols, hardware configuration
Documentation function
Included
Included - S7-DOCPRO option for standard-compliant documentation of the S7 project
Multi-language documentation of projects
Yes
Yes
Multi-user engineering
No
Yes
Programming
Languages
LAD/FBD/STL
LAD/FBD/STL and STL sources
As Step 7
 + S7-Graph (sequencer)/S7-SCL (textual high-level language)
Structured/symbolic programming
Yes/Yes
Yes/Yes
Check/establish program consistency
Yes/Yes
Yes/Yes
Standard libraries/user libraries
Yes/No
Yes/Yes
Online functions
Online access
MPI
MPI, Profibus, Option: Industrial Ethernet
Test functions
Monitor, control, force
Monitor, control, force, single step (debug)
Comparison function offline/online
Program, hardware configuration
Program
Diagnostics
System diagnostics
System diagnostics, report system fault, integrated process fault diagnostics in S7-Graph
Optional packages
Optional programming languages
None
S7-Graph, S7-SCL, S7-HiGraph, CFC
S7-HiGraph, CFC
Options for simulation, documentation, diagnostics and remote maintenance
S7-PLCSIM, S7-Teleservice
S7-PLCSIM, S7-Teleservice, S7-DOCPRO, S7-Pdiag
S7-Teleservice, S7-DOCPRO, S7-Pdiag
(S7-PLCSIM is all ready included in package)

The Case of the Missing SIMATIC Step 7 Documentation

“We had documentation at one time.”
Sound familiar?  Have you suddenly found changes that have been made in the PLC but not in the offline program?  Nobody knows what happened.
Unfortunately this is an all too common phenomena with the Siemens SIMATIC Step 7 software.  The problems stem from the flexibility of the software both for downloading and editing the online program.  If the person is not familiar with the software it’s very easy to get confused if the changes are being made on the computer or in the controller.
How to solve this problem?  Let’s first of all review some basic terminology.  After that is a step by step best practice when editing programs.  Finally, we’ll highlight the pitfalls and the indicators that tell you whether you are offline or online.  This procedure applies to SIMATIC Step 7 version 5.4.

Terminology

Offline program – The program that is stored on the hard disk of the computer.  This will contain the documentation.  It’s very important to keep a pristine copy of the offline program as the associated documentation is not stored in the PLC.
Online program – This is the program resident in the PLC.
Download – The act of taking the offline program on the computer and downloading it into the PLC.
Upload – Taking the program in the PLC and bringing it up to the computer.  Doing this without having the associated offline program open will cause a loss of documentation.



Siemens Upload Download Direction

Save – Stores the open block onto the hard drive.  It’s important to realize that an edited block can be downloaded to the PLC without saving it offline.  Note that this only saves the opened block and not any others that are concurrently open.
These may seem like simple terms but it’s important to understand how they’re used in the Siemens environment.
Here are some other terms that may come up.
PG/PC – This is Siemens way of referring to a PC or laptop running the SIMATIC software.
Nodes – Refers to any programmable device (in our case a PLC) in the network which will have its own unique address.

Best Practice

The best practice is to make sure you are working from an offline file.  There really isn’t any reason to be working on the program inside the PLC.  Of course, this assumes that you have a good working copy to begin with.  The “golden” copy of the program should live somewhere on a network server or have a dedicated place on one computer or laptop.  I’ve even heard of some companies using USB memory sticks to store the latest and greatest which is great but an original copy should still live on a computer that is backed up.
  1. Open the offline file from the File pull down menu and select Open or use the  Open Project icon  Siemens Project Open Icon on the toolbar.  In the dialog box select the project under the User Project tab. Click OK.  You may have to select Browse to find it in the directory structure.  Note if the Manager was closed with a project open then it will open back up to that project automatically.
  2. Expand the project tree down to the program files and select the Blocks folder.  Good practice dictates that all blocks should be opened from here.
  3. Once changes have been made:
    1. Save the block to the hard disk by clicking the Save icon Siemens Project Open Icon (or menu item File | Save)
    2. Download the block by clicking the Download icon Siemens Project Open Icon (or menu item PLC | Download).  If the block all ready exists in the PLC then it will confirm that you want to overwrite it1.  Click Yes.
    3. Note that downloading from here only sends that one block to the PLC.  It does not download the entire program.
  4. To monitor the block make sure to open it using steps 1 through 3 and then press the Monitor icon Siemens Project Open Icon (or menu item Debug | Monitor).  The window’s title bar will highlight a lovely shade of blue to indicate a connection to the CPU.  It’s important to note here that you are still working with the program on the computer and not the PLC.  If the procedure in step 3 has not been followed then discrepancies can occur between what you are monitoring in the PLC and what is displayed in the SIMATIC software.
That’s it.  Following these simple steps will save a lot of headaches.

Pitfalls Ahead

The Pitfalls and Warning Signs

So where do some people get lost?  Here are some common mistakes and their warning signs.  If you get any of these dialog boxes then you should really back out and start over because you’re on the road to losing your documentation.



Siemens Missing 01

Siemens Missing 02
These dialog boxes are telling you that it cannot find the documentation for the local parameters and symbols.  More then likely it will also not show any network comments or titles.
The result of opening the block looks like this

Siemens Missing 03

This is an example void of documentation.  Notice the local parameters all say TEMP.  There are no comments or titles.  There are no symbols so it’s all in direct addressing.  The properly documented copy looks like this...

Siemens Missing 04

Pitfall #1 – Using Accessible Nodes to Open Blocks
The  Display Accessible Nodes Siemens Project Open Icon selection under the PLC menu is a handy way to see what is connected to the network but it should never be used to open blocks.  Opening blocks from here uploads it straight from the PLC and produces the warnings dialog boxes shown above.


Siemens Accessible Nodes Menu

Siemens Accessible Nodes Window

Pitfall #2 – Viewing Online from SIMATIC manager
Once a project is open and a connection to a PLC is established then selecting the Online button Siemens Project Open Icon (menu View | Online) brings up a similar project tree showing the contents inside the PLC.  The window title bar is highlighted in blue to indicate its online status.  Working from this window presents less of a danger for losing documentation but it is confusing and could lead to problems.  For instance if a block is renamed offline and then the old one is opened online then it will have no associated documentation.
The proper way to view a block online is to open the block and select the Establish Connection to Configured CPU icon Siemens Project Open Icon.  Just make sure what you are viewing has been downloaded to the PLC.

Siemens Online Partner Window

Pitfall #3 – Opening the Online Partner
If an offline block is open then selecting the  Open Offline/Online Partner icon Siemens Project Open Icon (menu item File | Open Online) will switch it to the online version of the block for editing.  Essentially this puts you in the same place as pitfall #2.

Conclusion

Programming with SIMATIC Step 7 is different enough from other types of PLCs to throw off the casual user.  Always working from the offline copy will make it less likely to screw up.  Opening up a block from the accessible nodes window is always a no-no.  Likewise, opening a block from a window that has a highlighted blue title bar will also cause potential problems.  Be sure and read all dialog boxes especially the ones we’ve shown in the article.  Avoid the pitfalls and keep that documentation.  Mystery solved.

Footnote:
(1) Siemens dialog boxes have an option that says, “Do not display this message again.”  This is handy for some annoying pop ups but it is really not a good idea to turn off important ones like warnings for overwriting blocks.  These warnings are especially crucial if you are working on real machinery.  If more then one person is using the software then you can reset these messages to display again by going to the SIMATIC Manager and select the menu Options | Customize.  Click the General tab and press the Activate button.  If it’s grayed out then all messages are set to display.

S7 Library Functions

I couldn't find a complete listing of all the function blocks in the standard Siemens S7 Libraries so I made one myself. It helps me get a better overview of what is available. The complete listing is also available as an Excel spreadsheet so you can sort or adjust to your needs.

System Function Blocks

NumberNameFamilyDescription
SFB 0CTUIEC_TCCount Up
SFB 1CTDIEC_TCCount Down
SFB 2CTUDIEC_TCCount Up/Down
SFB 3TPIEC_TCGenerate a Pulse
SFB 4TONIEC_TCGenerate an On Delay
SFB 5TOFIEC_TCGenerate an Off Delay
SFB 8USENDCOM_FUNCUncoordinated Sending of Data
SFB 9URCVCOM_FUNCUncoordinated Receiving of Data
SFB 12BSENDCOM_FUNCSending Segmented Data
SFB 13BRCVCOM_FUNCReceiving Segmented Data
SFB 14GETCOM_FUNCRead Data from a Remote CPU
SFB 15PUTCOM_FUNCWrite Data to a Remote CPU
SFB 16PRINTCOM_FUNCSend Data to Printer
SFB 19STARTCOM_FUNCInitiate a Warm or Cold Restart on a Remote Device
SFB 20STOPCOM_FUNCChanging a Remote Device to the STOP State
SFB 21RESUMECOM_FUNCInitiate a Hot Restart on a Remote Device
SFB 22STATUSCOM_FUNCQuery the Status of a Remote Partner
SFB 23USTATUSCOM_FUNCReceive the Status of a Remote Device
SFB 29HS_COUNTCOUNTERSCounter (high-speed counter, integrated function) (only exist on the CPU 312 IFM and CPU 314 IFM)
SFB 30FREQ_MESCOUNTERSFrequency Meter (frequency meter, integrated function (only exist on the CPU 312 IFM and CPU 314 IFM)
SFB 31NOTIFY_8PCOM_FUNCGenerating block related messages without acknowledgement indication
SFB 32DRUMTIMERSImplement a Sequencer
SFB 33ALARMCOM_FUNCGenerate Block-Related Messages with Acknowledgment Display
SFB 34ALARM_8COM_FUNCGenerate Block-Related Messages without Values for 8 Signals
SFB 35ALARM_8PCOM_FUNCGenerate Block-Related Messages with Values for 8 Signals
SFB 36NOTIFYCOM_FUNCGenerate Block-Related Messages without Acknowledgment Display
SFB 37AR_SENDCOM_FUNCSend Archive Data
SFB 38HSC_A_BCOUNTERSCounter A/B (integrated function) (only exist on the CPU 314 IFM)
SFB 39POSICONTPosition (integrated function) (only exist on the CPU 314 IFM)
SFB 41CONT_CICONTContinuous Control (only exist on the CPU 314 IFM)
SFB 42CONT_SICONTStep Control (only exist on the CPU 314 IFM)
SFB 43PULSEGENICONTPulse Generation (only exist on the CPU 314 IFM)
SFB 44ANALOGTEC_FUNCPositioning with Analog Output (only exist on the S7-300C CPUs)
SFB 46DIGITALTEC_FUNCPositioning with Digital Output (only exist on the S7-300C CPUs)
SFB 47COUNTTEC_FUNCControlling the Counter (only exist on the S7-300C CPUs)
SFB 48FREQUENCTEC_FUNCControlling the Frequency Measurement (only exist on the S7-300C CPUs)
SFB 49PULSETEC_FUNCControlling Pulse Width Modulation (only exist on the S7-300C CPUs)
SFB 52RDRECDPReading a Data Record
SFB 53WRRECDPWriting a Data Record
SFB 54RALRMDPReceiving an Interrupt
SFB 60SEND_PTPTEC_FUNCSending Data (ASCII, 3964(R)) (only exist on the S7-300C CPUs)
SFB 61RECV_PTPTEC_FUNCReceiving Data (ASCII, 3964(R)) (only exist on the S7-300C CPUs)
SFB 62RES_RECVTEC_FUNCDeleting the Receive Buffer (ASCII, 3964(R)) (only exist on the S7-300C CPUs)
SFB 63SEND_RKTEC_FUNCSending Data (RK 512) (only exist on the S7-300C CPUs)
SFB 64FETCH_RKTEC_FUNCFetching Data (RK 512) (only exist on the S7-300C CPUs)
SFB 65SERVE_RKTEC_FUNCReceiving and Providing Data (RK 512) (only exist on the S7-300C CPUs)
SFB 75SALRMDPSend interrupt to DP master
SFB 81RD_DPARIO_FUNCTRead Predefined Parameter

System Function Calls

NumberNameFamilyDescription
SFC 0SET_CLKCLK_FUNCSet System Clock
SFC 1READ_CLKCLK_FUNCRead System Clock
SFC 2SET_RTMCLK_FUNCSet Run-time Meter
SFC 3CTRL_RTMCLK_FUNCStart/Stop Run-time Meter
SFC 4READ_RTMCLK_FUNCRead Run-time Meter
SFC 5GADR_LGCIO_FUNCTQuery Logical Address of a Channel
SFC 6RD_SINFODB_FUNCTRead OB Start Information
SFC 7DP_PRALDPTrigger a Hardware Interrupt on the DP Master
SFC 9EN_MSGCOM_FUNCEnable Block-Related, Symbol-Related and Group Status Messages
SFC 10DIS_MSGCOM_FUNCDisable Block-Related, Symbol-Related and Group Status Messages
SFC 11DPSYC_FRDPSynchronize Groups of DP Slaves
SFC 12D_ACT_DPDPDeactivation and activation of DP slaves
SFC 13DPNRM_DGDIAGNSTCRead Diagnostic Data of a DP Slave (Slave Diagnostics)
SFC 14DPRD_DATDPRead Consistent Data of a Standard DP Slave
SFC 15DPWR_DATDPWrite Consistent Data to a DP Standard Slave
SFC 17ALARM_SQPMC_FUNCGenerate Acknowledgeable Block-Related Messages
SFC 18ALARM_SPMC_FUNCGenerate Permanently Acknowledged Block-Related Messages
SFC 19ALARM_SCPMC_FUNCQuery the Acknowledgment Status of the last ALARM_SQ Entering State Message
SFC 20BLKMOVMOVECopy Variables
SFC 21FILLMOVEInitialize a Memory Area
SFC 22CREAT_DBDB_FUNCTCreate Data Block
SFC 23DEL_DBDB_FUNCTDelete Data Block
SFC 24TEST_DBDB_FUNCTTest Data Block
SFC 25COMPRESSDB_FUNCTCompress the User Memory
SFC 26UPDAT_PIIO_FUNCTUpdate the Process Image Update Table
SFC 27UPDAT_POIO_FUNCTUpdate the Process Image Output Table
SFC 28SET_TINTPGM_CNTLSet Time-of-Day Interrupt
SFC 29CAN_TINTPGM_CNTLCancel Time-of-Day Interrupt
SFC 30ACT_TINTPGM_CNTLActivate Time-of-Day Interrupt
SFC 31QRY_TINTPGM_CNTLQuery Time-of-Day Interrupt
SFC 32SRT_DINTPGM_CNTLStart Time-Delay Interrupt
SFC 33CAN_DINTPGM_CNTLCancel Time-Delay Interrupt
SFC 34QRY_DINTPGM_CNTLQuery Time-Delay Interrupt
SFC 35MP_ALMPGM_CNTLTrigger Multicomputing Interrupt
SFC 36MSK_FLTDIAGNSTCMask Synchronous Errors
SFC 37DMSK_FLTDIAGNSTCUnmask Synchronous Errors
SFC 38READ_ERRDIAGNSTCRead Error Register
SFC 39DIS_IRTIRT_FUNCDisable New Interrupts and Asynchronous Errors
SFC 40EN_IRTIRT_FUNCEnable New Interrupts and Asynchronous Errors
SFC 41DIS_AIRTIRT_FUNCDelay Higher Priority Interrupts and Asynchronous Errors
SFC 42EN_AIRTIRT_FUNCEnable Higher Priority Interrupts and Asynchronous Errors
SFC 43RE_TRIGRPGM_CNTLRe-trigger Cycle Time Monitoring
SFC 44REPL_VALDIAGNSTCTransfer Substitute Value to Accumulator 1
SFC 46STPPGM_CNTLChange the CPU to STOP
SFC 47WAITPGM_CNTLDelay Execution of the User Program
SFC 48SNC_RTCBCLK_FUNCSynchronize Slave Clocks
SFC 49LGC_GADRIO_FUNCTQuery the Module Slot Belonging to a Logical Address
SFC 50RD_LGADRIO_FUNCTQuery all Logical Addresses of a Module
SFC 51RDSYSSTDIAGNSTCRead a System Status List or Partial List
SFC 52WR_USMSGDIAGNSTCWrite a User-Defined Diagnostic Event to the Diagnostic Buffer
SFC 54RD_PARMIO_FUNCTRead Defined Parameters
SFC 55WR_PARMIO_FUNCTWrite Dynamic Parameters
SFC 56WR_DPARMIO_FUNCTWrite Default Parameters
SFC 57PARM_MODIO_FUNCTAssign Parameters to a Module
SFC 58WR_RECIO_FUNCTWrite a Data Record
SFC 59RD_RECIO_FUNCTRead a Data Record
SFC 60GD_SNDCOM_FUNCSend a GD Packet
SFC 61GD_RCVCOM_FUNCFetch a Received GD Packet
SFC 62CONTROLCOM_FUNCQuery the Status of a Connection Belonging to a Communication SFB Instance
SFC 63AB_CALLPLASTICSAssembly Code Block (only exists for CPU 614)
SFC 64TIME_TCKCLK_FUNCRead the System Time
SFC 65X_SENDCOM_FUNCSend Data to a Communication Partner outside the Local S7 Station
SFC 66X_RCVCOM_FUNCReceive Data from a Communication Partner outside the Local S7 Station
SFC 67X_GETCOM_FUNCRead Data from a Communication Partner outside the Local S7 Station
SFC 68X_PUTCOM_FUNCWrite Data to a Communication Partner outside the Local S7 Station
SFC 69X_ABORTCOM_FUNCAbort an Existing Connection to a Communication Partner outside the Local S7 Station
SFC 70GEO_LOGIO_FUNCTDetermine Start Address of a Module
SFC 71LOG_GEOIO_FUNCTDetermine the Slot Belonging to a Logical Address
SFC 72I_GETCOM_FUNCRead Data from a Communication Partner within the Local S7 Station
SFC 73I_PUTCOM_FUNCWrite Data to a Communication Partner within the Local S7 Station
SFC 74I_ABORTCOM_FUNCAbort an Existing Connection to a Communication Partner within the Local S7 Station
SFC 78OB_RTDIAGNSTCDetermine OB program runtime
SFC 79SETBIT_LOGCSet a Range of Outputs
SFC 80RSETBIT_LOGCReset a Range of Outputs
SFC 81UBLKMOVMOVEUninterruptible Block Move
SFC 82CREA_DBLDB_CTRLCreate a Data Block in the Load Memory
SFC 83READ_DBLDB_CTRLRead from a Data Block in Load Memory
SFC 84WRIT_DBLDB_CTRLWrite from a Data Block in Load Memory
SFC 85CREA_DBDB_FUNCTCreate a Data Block
SFC 87C_DIAGCOM_FUNCDiagnosis of the Actual Connection Status
SFC 90H_CTRLHF_FUNCTControl Operation in H Systems
SFC 100SET_CLKSCLK_FUNCSetting the Time-of-Day and the TOD Status
SFC 101RTMCLK_FUNCHandling runtime meters
SFC 102RD_DPARAIO_FUNCTRedefined Parameters
SFC 103DP_TOPOLDPIdentifying the bus topology in a DP master system
SFC 104CIRPGM_CNTLControlling CiR
SFC 105READ_SIPMC_FUNCReading Dynamic System Resources
SFC 106DEL_SIPMC_FUNCDeleting Dynamic System Resources
SFC 107ALARM_DQPMC_FUNCGenerating Always Acknowledgeable and Block-Related Messages
SFC 108ALARM_DPMC_FUNCGenerating Always Acknowledgeable and Block-Related Messages
SFC 112PN_INPROFIne2Update inputs in the user program interface of PROFInet components
SFC 113PN_OUTPROFIne2Update outputs in the user program interface of PROFInet components
SFC 114PN_DPPROFIne2Update DP interconnections
SFC 126SYNC_PIIO_FUNCTUpdate process image partition input table in synchronous cycle
SFC 127SYNC_POIO_FUNCTUpdate process image partition output table in synchronous cycle

S5-S7 Converting Blocks

NumberNameFamilyDescription
FC 61GP_FPGPS5_CNVRTChange fixed point number to floating point number
FC 62GP_GPFPS5_CNVRTChange floating point number to fixed point number
FC 63GP_ADDS5_CNVRTAdd floating point numbers
FC 64GP_SUBS5_CNVRTSubtract floating point numbers
FC 65GP_MULS5_CNVRTMultiply floating point number
FC 66GP_DIVS5_CNVRTDivide floating point numbers
FC 67GP_VGLS5_CNVRTCompare floating point numbers
FC 68RAD_GPS5_CNVRTExtract root of floating point numbers
FC 69MLD_TGS5_CNVRTClock generator
FC 70MLD_TGZS5_CNVRTClock generator (timing element)
FC 71MLD_EZWS5_CNVRTMessage of first value with single flashing light, wordwise, A
FC 72MLD_EDWS5_CNVRTMessage of first value with double flashing light, wordwise, A
FC 73MLD_SAMWS5_CNVRTCollected message, wordwise (sound alert)
FC 74MLD_SAMS5_CNVRTCollected message, bitwise
FC 75MLD_EZ S5_CNVRTMessage of first value with single flashing light, bitwise, A
FC 78MLD_EDWKS5_CNVRTMessage of first value with double flashing light, wordwise, A+M
FC 79MLD_EZKS5_CNVRTMessage of first value with single flashing light, bitwise, A+M
FC 80MLD_EDKS5_CNVRTMessage
of first value with double flashing light, bitwise, A+M
FC 81COD_B4S5_CNVRTChange BCD number to 16 bit dual number
FC 82COD_16S5_CNVRTChange 16 bit dual number to BCD number
FC 83MUL_16S5_CNVRTMultiply 16 bit dual numbers
FC 84DIV_16S5_CNVRTDivide 16 bit dual numbers
FC 85ADD_32S5_CNVRTAdd 32 bit dual numbers
FC 86SUB_32S5_CNVRTSubtract 32 bit dual numbers
FC 87MUL_32 S5_CNVRTMultiply 32 bit dual numbers
FC 88DIV_32S5_CNVRTDivide 32 bit dual numbers
FC 89RAD_16S5_CNVRTExtract roots of 16 bit dual numbers
FC 90REG_SCHBS5_CNVRTBi-directional shift register, bitwise
FC 91REG_SCHW S5_CNVRTBi-directional shift register, wordwise
FC 92REG_FIFOS5_CNVRTBuffer memory (FIFO)
FC 93REG_LIFOS5_CNVRTStack register (LIFO)
FC 94DB_COPY1S5_CNVRTCopy data block, direct assignment of parameters
FC 95DB_COPY2 S5_CNVRTCopy data block, indirect assignment of parameterization
FC 96RETTENS5_CNVRTSave scratchpad memory
FC 97LADENS5_CNVRTLoad scratchpad memory
FC 98COD_B8S5_CNVRTChange BCD number to 32 bit dual number
FC 99COD_32S5_CNVRTChange 32 bit dual number to BCD number
FC 100AE_460_1S5_CNVRTRead analog value
FC 101AE_460_2S5_CNVRTRead analog value
FC 102AE_463_1S5_CNVRTRead analog value
FC 103AE_463_2S5_CNVRTRead analog value
FC 104AE_464_1S5_CNVRTRead analog value
FC 105AE_464_2S5_CNVRTRead analog value
FC 106AE_466_1S5_CNVRTRead analog value
FC 107AE_466_2S5_CNVRTRead analog value
FC 108RLG_AA1S5_CNVRTOutput analog value
FC 109RLG_AA2S5_CNVRTOutput analog value
FC 110PER_ET1S5_CNVRTRead and Write for extended periphery (direct assignment of parameters)
FC 111PER_ET2S5_CNVRTRead and Write for extended periphery (indirect assignment of parameters)
FC 112SINUSS5_CNVRTSine (x)
FC 113COSINUSS5_CNVRTCosine (x)
FC 114TANGENSS5_CNVRTTangent (x)
FC 115COTANGS5_CNVRTCotangent (x)
FC 116ARCSINS5_CNVRTArc sine (x)
FC 117ARCCOSS5_CNVRTArc cosine (x)
FC 118ARCTANS5_CNVRTArc tangent (x)
FC 119ARCCOTS5_CNVRTArc cotangens (x)
FC 120LN_XS5_CNVRTNatural logarithm ln (x)
FC 121LG_XS5_CNVRTDecade logarithm Iog (x)
FC 122B_LOG_XS5_CNVRTGeneral logarithm log (x) to basis b
FC 123E_H_NS5_CNVRTe to the power of n
FC 124ZEHN_H_NS5_CNVRT10 to the power of n
FC 125A2_H_A1S5_CNVRTAKKU 2 to the power of AKKU 1

IEC Function Blocks

NumberNameFamilyDescription
FC 1AD_DT_TMIECPoint Math Add duration to a time
FC 2CONCATIECCombine two STRING variables
FC 3D_TOD_DTIECCombine DATE and TIME_OF_DAY to DT
FC 4DELETEIECDelete in a STRING variable
FC 5DI_STRNGIECData type conversion DINT to STRING
FC 6DT_DATEIECExtract the DATE from DT
FC 7DT_DAYIECExtract the day of the week from DT
FC 8DT_TODIECExtract the TIME_OF_DAY from DT
FC 9EQ_DTIECCompare DT for equal
FC 10EQ_STRNGIECCompare STRING for equal
FC 11FINDIECFind in a STRING variable
FC 12GE_DTIECCompare DT for greater than or equal
FC 13GE_STRNGIECCompare STRING for greater than or equal
FC 14GT_DTIECCompare DT for greater than
FC 15GT_STRNGIECCompare STRING for greater than
FC 16I_STRNGIECData type conversion INT to STRING
FC 17INSERTIECInsert in a STRING variable
FC 18LE_DTIECCompare DT for smaller than or equal
FC 19LE_STRNGIECCompare STRING for smaller than or equal
FC 20LEFTIECLeft part of a STRING variable
FC 21LENIECLength of a STRING variable
FC 22LIMITIECPoint Math Limit
FC 23LT_DTIECCompare DT for smaller than
FC 24LT_STRNGIECCompare STRING for smaller than
FC 25MAXIECPoint Math Select maximum
FC 26MIDIECMiddle part of a STRING variable
FC 27MINIECPoint Math Select minimum
FC 28NE_DTIECCompare DT for unequal
FC 29NE_STRNGIECCompare STRING for unequal
FC 30R_STRNGIECData type conversion REAL to STRING
FC 31REPLACEIECReplace in a STRING variable
FC 32RIGHTIECRight part of a STRING variable
FC 33S5TI_TIMIECData type conversion S5TIME to TIME
FC 34SB_DT_DTIECPoint Math Subtract two time values
FC 35SB_DT_TMIECPoint Math Subtract duration from a time
FC 36SELIECPoint Math Binary selection
FC 37STRNG_DIIECData type conversion STRING to DINT
FC 38STRNG_IIECData type conversion STRING to INT
FC 39STRNG_RIECData type conversion STRING to REAL
FC 40TIM_S5TIIECData type conversion TIME to S5TIME

PID Control Blocks

NumberNameFamilyDescription
FB 41CONT_CICONTContinuous Control
FB 42CONT_SICONTStep Control
FB 43PULSEGENICONTPulse Generation
FB 58TCONT_CPCONTROLTemperature Continuous Controller
FB 59TCONT_SCONTROLTemperature Step Controller

Communication Blocks

NumberNameFamilyDescription
FB 2IDENTIFYCP_300For checking device
properties
FB 3READCP_300Reads data from a data area of the communication partner specified by a name or index depending on the assignment of parameters for the job.
FB 4REPORTCP_300Allows unconfirmed transmission of variables by an FMS server.
FB 5STATUSCP_300allows status information to be requested from the communications partner on the specified FMS connection.
FB 6WRITECP_300Transfers data from a specified local data area to a data area on the communication partner.
FB 8USENDCP_300Uncoordinated Sending of Data
FB 9URCVCP_300Uncoordinated Receiving of Data
FB 12BSENDCP_300Sending Segmented Data
FB 13BRCVCP_300Receiving Segmented Data
FB 14GETCP_300Read Data from a Remote CPU
FB 15PUTCP_300Write Data to a Remote CPU
FB 20GETIOIO_FUNCTRead All Inputs of a DP Standard Slave/PROFINET IO Device
FB 21SETIOIO_FUNCTWrite All Outputs of a DP Standard Slave/PROFINET IO Device
FB 22GETIO_PARTIO_FUNCTRead a Part of the Inputs of a DP Standard Slave/PROFINET IO Device
FB 23SETIO_PARTIO_FUNCTWrite a Part of the Outputs of a DP Standard Slave/PROFINET IO Device
FB 55IP_CONFIGCP_300Transfers a configuration data block (CONF_DB) containing connection data for an Ethernet CP.
FB 63TSENDCOMMSending Data via TCP native and ISO on TCP
FB 64TRCVCOMMReceiving Data via TCP native and ISO on TCP
FB 65TCONCOMMEstablishing a Connection using TCP native and ISO on TCP
FB 66TDISCONCOMMTerminating a Connection using TCP native and ISO on TCP
FB 67TUSENDCOMMSending Data via UDP
FB 68TURCVCOMMReceiving Data via UDP
FC 1DP_SENDCP_300transfers data to the PROFIBUS CP
FC 2DP_RECVCP_300receives data on PROFIBUS
FC 3DP_DIAGCP_300used to request diagnostic information
FC 4DP_CTRLCP_300transfers control jobs to the PROFIBUS CP
FC 5AG_SENDCP_300data by means of a configured connection to the communication partner (<= 240 bytes).
FC 6AG_RECVCP_300data by means of a configured connection from the communication partner (<= 240 bytes, not email).
FC 7AG_LOCKCP_300the external data access by means of FETCH/WRITE (not for UDP, email).
FC 8AG_UNLOCKCP_300the external data access by means of FETCH/WRITE (not for UDP, email).
FC 10AG_CNTRLCP_300allows you to diagnose connections. When necessary, you can reinitialize connection establishment using the FC.
FC 11PNIO_SENDCP_300used for data transfer in
the CP modes PROFINET IO controller or PROFINET IO device.
FC 12PNIO_RECVCP_300used to receive data in the CP modes PROFINET IO controller or PROFINET IO device.
FC 40FTP_CONNECTCP_300Establish an FTP connection
FC 41FTP_STORECP_300Store a file on the FTP server
FC 42FTP_RETRIEVECP_300Retrieve a file from the FTP server
FC 43FTP_DELETECP_300Delete a file on the FTP server
FC 44FTP_QUITCP_300Enable an FTP connection
FC 50AG_LSENDCP_300data by means of a configured connection to the communication partner.
FC 60AG_LRECVCP_300data by means of a configured connection from the communication partner (not email).
FC 62C_CNTRLCP_300Query a connection status for S7-300

TI-S7 Converting Blocks

NumberNameFamilyDescription
FB 80LEAD_LAGCONVERTLead/Lag Algorithm
FB 81DCATTIMERSDiscrete Control Alarm Timer
FB 82MCATTIMERSMotor Control Alarm Timer
FB 83IMCCOMPAREIndex Matrix Compare
FB 84SMCCOMPAREScan Matrix Compare
FB 85DRUMTIMERSEvent Maskable Drum
FB 86PACKMOVEPack Data
FC 80TONRTIMERSSoftware Timer On Delay—Retentive
FC 81IBLKMOVMOVEIndirect Block Move
FC 82RSETBIT_LOGCReset Range of Outputs
FC 83SETBIT_LOGCSet Range of Outputs
FC 84ATTTABLEAdd to Table
FC 85FIFOTABLEFirst In/First Out Unload Table
FC 86TBL_FINDTABLETable Find
FC 87LIFOTABLELast In/First Out Unload Table
FC 88TBLTABLETable
FC 89TBL_WRDTABLEMove Table to Word
FC 90WSRSHIFTWord Shift Register
FC 91WRD_TBLTABLEWord to Table
FC 92SHRBSHIFTBit Shift Register
FC 93SEGCONVERTSeven Segment Decoder
FC 94ATHCONVERTASCII to Hex
FC 95HTACONVERTHex to ASCII
FC 96ENCOCONVERTEncode Binary Position
FC 97DECOCONVERTDecode Binary Position
FC 98BCDCPLCONVERTTen’s Complement
FC 99BITSUMCONVERTSum Number of Bits
FC 100RSETIBIT_LOGCReset Range of Immediate Outputs
FC 101SETIBIT_LOGCSet Range of Immediate Outputs
FC 102DEVMATH_FPStandard Deviation
FC 103CDTTABLECorrelated Data Table
FC 104TBL_TBLTABLETable to Table
FC 105SCALECONVERTScaling Values
FC 106UNSCALECONVERTUnscaling Values

Miscellaneous Blocks

NumberNameFamilyDescription
FB 60SET_SWTIMEFUNCsupports the summertime/wintertime changeover in CPUs that do not have the time status. For this purpose it sets the CPU clock to the current time and according to the changeover rules in the Control DB.
FB 61SET_SW_STIMEFUNCsupports the summertime/wintertime changeover in CPUs that do have the time status. For this purpose it sets the time status to the current time and according to the changeover rules in the Control DB.
FB 62TIMESTMPTIMEFUNCtransfers the time-stamped messages of an IM153-2 into its instance DB.
FC 60LOC_TIMETIMEFUNCreads the time status or time of the CPU and calculates the local time. It is therefore only useful on CPUs with time status.
FC 61BT_LTTIMEFUNCcalculates the local time from the base time given at the input.
FC 62LT_BTTIMEFUNCcalculates the base time from the local time given at the input.
FC 63S_LTINTTIMEFUNCsets the required time interrupt to the preset time. This time is given in local time.

Siemens Technical Terms

Otherwise known as Siemens speak. Here's a list of Siemens specific abbreviations and their meanings.

TermDescriptionExplanation
C7Combo PLC/HMI systemA PLC and screen in one package
CFCContinuous Function ChartOptional programming language
CPCommunication ProcessorModules used for special communication protocols
DBData BlockMemory storage areas for user data
FBFunction BlockA function with it's own data block
FBDFunction Block DiagramStandard programming language
FCFunction CallCalled progammed blocks
FMFunction ModuleModules with special functions (e.g. positioning)
GSDGeneric Station DescriptionFiles used for Profibus descriptions
HiGraphOptional programming language
IMInterface ModuleModules to connect remote racks
LADLadder Logic DiagramStandard programming language
M7Programmable modulesA module with processing capabilities
MMCMicro Memory CardCompact plug-in memory card
MPIMulti Point InterfaceStandard communication protocol
OBOrganization BlockBlocks for user programs based on different operating system events.
OPOperator PanelSimple display with or without buttons
PCSProcess Control SystemSoftware for the entire process chain
PGProgramming TerminalDedicated Siemens device - basically a PC
PPIPoint to Point InterfaceSerial RS-232 communication
Profibus DPProfibus Decentral PeripheralsNetworking protocol used for factory automation
Profibus PAProfibus Process AutomationNetworking protocol used for process automation
S7SIMATIC Step 7 product line
SCLStructured Control LanguageOptional programming language
SFBSystem Function BlockIntegrated FB for CPU information
SFCSystem Function CallIntegrated FC for CPU information
SMSignal ModuleStandard Input/Output modules
STLStatement ListText based programming language
TPTouch PanelTouch screen display
UDTUser-Definded Data TypeSpecial data structures defined by the user
VATVariable Access TableTables used to monitor/modify values in the PLC

Step 7 Elementary Data Types

Type and
Description
Size
in
Bits
Format OptionsRange and Number Notation
(lowest to highest values)
Example in STL
BOOL (Bit)1Boolean text TRUE/FALSE TRUE
BYTE (Byte)8Hexadecimal numberB#16#0 to B#16#FF L B#16#10
L byte#16#10
WORD (Word)16Binary number2#0 to 2#1111_1111_1111_1111L 2#0001_0000_0000_0000
Hexadecimal numberW#16#0 to W#16#FFFFL W#16#1000
L word#16#1000
BCDC#0 to C#999L C#998
Decimal number unsignedB#(0,0) to B#(255,255)L B#(10,20)
L byte#(10,20)
DWORD (Double word)32Binary number2#0 to 2#1111_1111_1111_1111_
1111_1111_1111_1111
L 2#1000_0001_0001_1000_
1011_1011_0111_1111
Hexadecimal numberW#16#0000_0000 to W#16#FFFF_FFFFL DW#16#00A2_1234
L dword#16#00A2_1234
Decimal number unsignedB#(0,0,0,0) to B#(255,255,255,255)L B#(1, 14, 100, 120)
L byte#(1,14,100,120)
INT (Integer)16Decimal number signed-32768 to 32767L 101
DINT (Double integer)32Decimal number signedL#-2147483648 to L#2147483647L L#101
REAL (Floating-point number)32IEEE Floating-point numberUpper limit +/-3.402823e+38
Lower limit +/-1.175495e-38
L 1.234567e+13
S5TIME (SIMATIC time)16S7 time in steps of 10ms (default)S5T#0H_0M_0S_10MS to
S5T#2H_46M_30S_0MS and
S5T#0H_0M_0S_0MS
L S5T#0H_1M_0S_0MS
L S5TIME#0H_1H_1M_0S_0MS
TIME (IEC time)32IEC time in steps of 1 ms, integer signedT#24D_20H_31M_23S_648MS
to
T#24D_20H_31M_23S_647MS
L T#0D_1H_1M_0S_0MS
L TIME#0D_1H_1M_0S_0MS
DATE (IEC date)16IEC date in steps of 1 dayD#1990-1-1 to
D#2168-12-31
L D#1996-3-15
L DATE#1996-3-15
TIME _OF_DAY (Time)32Time in steps of 1 msTOD#0:0:0.0 to
TOD#23:59:59.999
L TOD#1:10:3.3
L TIME_OF_DAY#1:10:3.3
CHAR (Character)8ASCII charactersA', 'B' etc.L 'E'


S5TIME NOTES

  • Underscores in time and date are optional
  • It is not required to specify all time units (for example: T#5h10s is valid)
  • Maximum time value = 9,990 seconds or 2H_46M_30S
S5TIME Format
S5TIME Format

Time baseBinary Code
10 ms00
100 ms01
1 s10
10 s11

Symbol Table Allowed Addresses and Data Types

English
Mnemonics
German
Mnemonics
DescriptionData TypeAddress Range
I/O Signals
IEInput bitBOOL0 to 65535.7
IBEBInput byteBYTE, CHAR0 to 65535
IWEWInput wordWORD, INT, S5TIME, DATE0 to 65534
IDEDInput double wordDWORD, DINT, REAL, TOD, TIME0 to 65532
QAOutput bitBOOL0 to 65535.7
QBABOutput byteBYTE, CHAR0 to 65535
QWAWOutput wordWORD, INT, S5TIME, DATE0 to 65534
QDADOutput double wordDWORD, DINT, REAL, TOD, TIME0 to 65532
Marker Memory
MMMemory bitBOOL0 to 65535.7
MBMBMemory byteBYTE, CHAR0 to 65535
MWMWMemory wordWORD, INT, S5TIME, DATE0 to 65534
MDMDMemory double wordDWORD, DINT, REAL, TOD, TIME0 to 65532
Peripheral I/O
PIBPEBPeripheral input byteBYTE, CHAR0 to 65535
PIWPEWPeripheral input wordWORD, INT, S5TIME, DATE0 to 65534
PIDPEDPeripheral input double wordDWORD, DINT, REAL, TOD, TIME0 to 65532
PQBPABPeripheral output byteBYTE, CHAR0 to 65535
PQWPAWPeripheral output wordWORD, INT, S5TIME, DATE0 to 65534
PQDPADPeripheral output double wordDWORD, DINT, REAL, TOD, TIME0 to 65532
Timers and Counters
TTTimerTIMER0 to 65535
CZCounterCOUNTER0 to 65535
Logic Blocks
FBFBFunction blockFB0 to 65535
OBOBOrganization blockOB1 to 65535
FCFCFunctionFC0 to 65535
SFBSFBSystem function blockSFB0 to 65535
SFCSFCSystem functionSFC0 to 65535
Data Blocks
DBDBData blockDB, FB, SFB, UDT1 to 65535
User-defined data types
UDTUDTUser-defined data typeUDT0 to 65535

Siemens S7 Indirect Addressing

by Automation Training
The following is provided by Automation Training from their excellent Siemens Step 7 training manual. This is a really nice explanation of a difficult but important subject. Check out their website for hands-on and online training classes.
Automation Training

Introduction

The most common form of addressing used in the Siemens S7 PLCs is direct and symbolic. When a direct addressed is referenced by an instruction there is no question as to the location in memory. The following are examples of direct addressing:
Inputs:I4.0, IB4, IW4 , ID4
Outputs:Q124.0, QB124, QW124, QD124
Markers:M11.0, MB10, MW10, MD10
Timers:T34
Counters:C23
Local:L0.0, LB1, LW2, LD4
Data Block:DB5.DBX2.0, DB5.DBW6, DBD8
By using the methods of indirect addressing the address used by an instruction can be varied to point to any number of locations. In this case, a memory location stores a “pointer” to another memory location. While this may increase the difficulty of troubleshooting, its advantage is to greatly reduce the number of networks and instructions needed to control a process. It is also a method that must be understood to use some of the library and system function calls provided by Siemens.

The POINTER and ANY Data Types

A POINTER data type is used to format a number to be accepted as an address rather then a value. A pointer is always preceded by a P# symbol. The pointer address may be in three different formats.
FormatExampleMemory Storage
P#<byte>.<bit>P#8.0
P#124.3
4 Bytes
P#<area><byte>.<bit>P#M50.0
P#I4.0
6 Bytes
P#<area><byte>.<bit><length>P#DB25.DBX0.0 BYTE 14
P#M0.0 WORD 2
P#I0.0 DWORD 5
10 Bytes
The ANY data type is used to pass a parameter of an unknown or undefined data type. Some functions in the library use the ANY data type to work on whole sections of memory. To do this, the last pointer method is used to describe an area. For example the address P#DB25.DBX 0.0 Byte 14 points to the first byte of DB25 with a length of 14 bytes.
NOTE: A DINT can be converted to a POINTER by simply shifting the double word left by 3 bits.

Data Block Instructions

When working with indirect addressing it is sometimes needed to first of all open a DB and then begin working on the
address without directly referring to any one DB. This is done using the OPN instruction. The OPN instruction can open either a shared data block (DB) or an instance data block (DI).
OPNDB10//Open DB10 as a shared data block
LDBW36//Load data word 36 of DB10 into ACCU1
TMW22//Transfer the contents of ACCU1 into MW22
OPNDI20//Open DB20 as an instance data block
LDIB12//Load data byte 12 from DB20 into ACCU1
TDBB37//Transfer the contents of ACCU1 to data
//byte 37 of the open shared data block DB10
When monitoring in STL the shared DB number is displayed in the DB1 column and the instance DB number is displayed in the DB2 column.
Furthermore, there are instructions to confirm that the correct DB number is opened and that it is large enough for the next operation.
LDBNO//Loads the number of the opened
//shared data block into ACCU1
LDBLG//Loads the length of the opened
//shared data block into ACCU1
LDINO//Loads the number of the opened
//instance data block into ACCU1
LDILG//Loads the length of the opened
//instance data block into ACCU1

Memory Indirect Addressing

The first method of indirect addressing is called memory indirect addressing because it allows for a memory location (M, DB or L) to determine or point to another.
The memory area identifiers T, C, DB, DI, FB and FC use a word (16-bit) pointer location in integer format. Two examples are as follows:
L5//Load ACCU1 with pointer value
TMW2//Transfer pointer into MW2
LT [MW 2]//Load ACCU1 with T5 current time value
OPNDB [#DB_Temp]//Open DB whose data block number is
//from the interface temp parameter
//named DB_Temp
The memory area identifiers I, Q, M, L, DB use a double word (32-bit) location using the POINTER data type.
LP#0.7//Load ACCU1 with pointer value
TMD2//Transfer pointer into MD2
AI [MD 2]//Check state of I0.7
=M [MD 2]//Assign value of RLO to M0.7
OPNDB5//Open DB5
LP#2.0//Load pointer into ACCU1
T#TempPointer//Transfer pointer to temp location
LDBW [#TempPointer]//Load the value at DB5.DBW2 into ACCU1
L0//Load a zero into ACCU1
>D//Check if the value is greater
//then zero
When monitoring memory indirect addressing the INDIRECT column displays the current address the instruction is using.
Note that math can be done on the POINTER data type using the double math instructions (e.g. P#2.0 + P#5.0 = P#7.0).
LP#2.0//Load ACCU1 with pointer value
LP#5.0//Load ACCU1 with secondpointer value
+D
TMD0//MD0 now contains the value P#7.0
Since the bit position only goes to eight the result of P#8.7 + P#1.1 = P#10.0 and not P#9.8. These methods can be used to offset the address or increase/decrease the pointer in a loop.

The Address Registers

Besides the regular accumulators, there are two 32-bit address registers (AR1, AR2) for storing pointers used in register indirect addressing methods. A series of different load and transfer type instructions can be used to work with AR1. A similar set is available for AR2.
STLDescription
LAR1Loads AR1 with the contents of ACCU1
LAR1 P#M100.0Loads AR1 with a pointer constant
LAR1 MD24Loads AR1 with the pointer in MD24
LAR1 AR2Loads AR1 with the contents of AR2
TAR1Transfers the contents AR1 into ACCU1
TAR1 MD28Transfers the contents in AR1 to a memory location
TAR1 AR2Transfers the contents in AR1 to AR2
CARExchanges the contents of AR1 with AR2
Addition can be directly accomplished on AR1 and AR2 with the following:
STLDescription
+AR1Adds the contents of ACCU1 to AR1 and stores the result back into AR1
+AR1 P#100.0Adds the pointer constant to AR1 and stores the result back into AR1

Area-Internal Register Indirect Addressing

The area-internal register indirect addressing method uses one of the address registers plus a pointer to determine the address the instruction is to reference. The format is:
address identifier [address register, pointer]
The address identifier can be I, Q, M, L, DI or DB in bit, byte, word or double word form. The address register must be previously loaded with a double word pointer without reference to the address identifier. The exact address is determined by adding the address register with the pointer. The example below shows the area-internal method using bit locations.
LP#0.7//Load ACCU1 with pointer value
LAR1//Load AR1 with pointer in ACCU1
AI [AR1, P#0.0]//Check input I0.7
=Q [AR1, P#1.1]//If RLO=1 turn on Q2.0

Area-Crossing Register Indirect Addressing

Area-crossing register indirect addressing is similar to the area-internal method except the pointer loaded into the address register references a memory area (e.g. P#M10.0 or P#DBX0.0). This means the address identifier used before the opening bracket is not needed if referencing a bit otherwise it will be a B for byte, W for word or D for double. The example below shows the area-crossing method using bit locations.
LP#I0.7//Load ACCU1 with pointer value
LAR1//Load AR1 with pointer in ACCU1
LP#Q124.0//Load ACCU1 with pointer value
LAR2//Load AR2 with pointer in ACCU1
A[AR1, P#0.0]//Check input I0.7
=[AR2, P#1.1]//If RLO=1 turn on Q125.1
This next example shows area-crossing methods using a word and double word format.
LP#M0.0//Load ACCU1 with pointer value
LAR1//Load AR1 with pointer in ACCU1
LW [AR1, P#10.0]//Load the word whose address is
//determined by the contents of
//AR1 plus 10 bytes (MW10) into ACCU1
OPNDB5//Open DB5
LP#DBX 0.0//Load ACCU1 with pointer value
LAR2//Load AR2 with pointer in ACCU1
LL#0//Load zero into ACCU1
TD [AR2, P#50.0]//Transfer the value in ACCU1 to the
//double word whose exact location is
//the address in AR2 plus 50 bytes
//(DB5.DBD50)

Exercise #1

  1. Comment the lines of STL below to describe what this network does:
AI0.0
JCM001
LP#M10.0
JUM002
M001:LP#Q0.0
M002:LAR1
AI0.1
=[AR1, P#0.1]
  1. Enter the code, monitor it and verify your answers.

Exercise #2 (Advanced)

  1. Create a DB with an array of 10 real numbers. Populate the array with random values.
  2. Create a function that will return the max number in the array and its position. Use the indirect addressing method of your choice.

Siemens S7 Status Word

In Siemens PLCs the Status Word is an internal CPU register used to keep track of the state of the instructions as they are being processed.  In order to use STL more effectively it is important to understand the Status Word and its functions.
Each bit in the Status Word has a specific function to keep track of bit logic (RLO, STA), math (OV, OS), comparison operations (CC0, CC1) and whether the logic should continue, be nested or start new (/FC, OR, BR).  Only the first 9 of the 16 bits are used.
Bit Positions
8
7
6
5
4
3
2
1
0
BR
CC0
CC1
OV
OS
OR
STA
RLO
/FC
Each instruction may do the following to each bit in the status word.
-No read or write
*Read
xMay write "1" or "0"
0Reset to "0"
1Set to "1"
The status word can be seen by displaying the STATUS column while monitoring in STL view.  The RLO (bit 1) and the STA (bit 2) are also displayed in the RLO and STA column.
Status Word in STL Monitor
The Most Important Status Word Bits
/FC – First Check (bit 0)
If the /FC bit is a 0 then the instruction is considered to be the first instruction being processed.  If the /FC is a 1 then the instruction being scanned will use the logic from the previous instruction. Certain instructions like =, S and R will set the /FC bit to 0 thus starting new logic after it.  Other instructions like A or O will set the /FC bit to 1 signalling to combine the logic with the next instruction.
RLO – Result of Logic Operation (bit 1)
The RLO bit stores the running logic state of the currently processing instructions.  Certain bit logic and comparison instruction will turn the RLO to a 1 when the condition is TRUE and write a 0 when the condition is FALSE.  Other instructions read the RLO (=, S, R) to determine how they are to execute.
STA – Status (bit 2)
The STA bit reflects the state of the current Boolean address.
Help with RLO, STA and /FC
If you are used to ladder logic and struggling to understand the purpose of the RLO and STA it may help to visualize a rung like below.  The STA is used to keep track of the state of the addresses.  The RLO is used to keep track of the state of the rung.
Ladder Equivilant Monitored
The equivalent STL is shown below.
RLO and STA example.jpg
It steps through the logic as follows:
  1. At the start the First Check bit (/FC) is zero so an And instruction will logically mirror the Status bit (STA) over to the Result of Logic Operation (RLO).  In this case the address I0.0 is 1 so the STA is one and the result of the logic (RLO) will be 1.  The A instruction writes a 1 to /FC.
    rlo and sta example line 1.jpg
  2. On the second line, the /FC bit is now 1 indicating that this line needs to use the RLO from the previous line.  The address I1.1 is on so the STA = 1.  The RLO from the last line is 1 and this is ‘anded’ with the current STA with a result of 1 in the current RLO.
    rlo and sta example line 2.jpg
  3. The same thing happens on the second line but this time 1 and 0 makes the current RLO = 0.
    rlo and sta example line 3.jpg
  4. The fourth is the Assign instruction which takes the RLO and writes it out to the corresponding address.  In this case the final RLO = 0 so the output will be off.  If M0.0 was 1 then the “And” operation will evaluate to true making the RLO = 1 which will then turn on the output Q1.0.
    rlo and sta example line 4.jpg
The Other Status Bits
OR (bit 3)
The OR bit is used for combining AND functions before OR functions.
OS – Overflow Stored (bit 4)
In the event of an overflow (OV bit 5) the OS bit will store the value even after the OV bit has been reset.  The following commands reset the OS bit: JOS (Jump if OS=1), block call instructions, block end instructions.
OV – Overflow (bit 5)
The OV bit is set by a math instruction with floating point numbers after a fault has occurred (overflow, illegal operation, comparison unordered). The OV bit is reset when the fault is eliminated.
CC0, CC1 – Condition Code (bits 6 and 7)
The Condition Code bits provide results for comparison and math instructions.
Comparison Instructions
CC 1CC 0Meaning
00ACCU 2 = ACCU 1
01ACCU 2 < ACCU 1
10ACCU 2 > ACCU 1
11Unordered (floating point comparison only)
Math Instructions, without Overflow
CC 1CC 0Meaning
00Result = 0
01Result < 0
10Result > 0
Integer Math Instructions, with Overflow
CC 1CC 0Meaning
00Negative range overflow in ADD_I and ADD_DI
01Negative range overflow in MUL_I and MUL_DI
10Negative range overflow in ADD_I, ADD_DI, SUB_I, and SUB_DI
11Division by 0 in DIV_I, DIV_DI, and MOD_DI
Floating Point Math Instructions, with Overflow
CC 1CC 0Meaning
00Gradual underflow
01Negative range overflow
10Positive range overflow
11Not a valid floating-point number
Shift and Rotate Instructions
CC 1CC 0Meaning
00Bit shifted out = 0
10Bit shifted out = 1
Word Logic Instructions
CC 1CC 0Meaning
00Result = 0
10Result <> 0
BR – Binary Result (bit 8)
The Binary Result transfers the result of the operations
onto the next instruction for reference.  When the BR bit is 1 it enables the output
of the block (ENO) to be TRUE and thus allow other blocks after it to be
processed.  The SAVE, JCB and JNB instructions set the BR bit.

Statement List (STL) Cheat Sheets

If you are a Siemens PLC user then you've more then likely have run into Statement List (STL) programming. STL corresponds to the Instruction List language defined in the IEC 61131-3 specification. The programming is done with very simple mnemonics that can be hard to remember if you don't use it very often.
These cheat sheets provide a quick reference guide for all the instructions and formatting. They are two pages long but if you can print on the front and back then they make for a nice one sheet reference.

STL Listed Alphabetically

STL by AlphabetBest used when trying to interpret an existing program.

Download: PDF (131KB)

STL Listed by Category

STL by CategoryBest when doing programming.

Download: PDF (140KB)

Connecting IFIX SCADA to Siemens S7 using TCP/IP

Setting up an S7 connection using TCP/IP

The TCP/IP method of communication to the S7-300 and S7-400 PLC's via TCP/IP communication module uses the S7WIN, S7WINSP, S7NT, or S7NTSP protocol.

Software requirements

  • Siemens SIMATIC NET software v6.1 SOFTNET-S7 Industrial Ethernet
  • IFIXSCADA v5.x or above
  • Windows XP + SP1

Hardware requirements

  • Standard network card
  • S7-300 with CPU315-2 DP
  • Siemens power supply PS30/5A
  • Siemens CP343-1 TCP
The hardware modules occupy the following slots in the Siemens PLC:
  1. Siemens power supply
  2. S7-300 CPU 315-2 DP
  3. Ethernet CP343-1 TCP

Example configuration

All wiring should be installed according to Siemens documentation.

Installing the SIMATIC NET software

You must log in as an Administrator to install the SIMATIC NET software. Close all other running applications, including any antivirus software you may be running.
  1. On the SIMATIC NET flash screen, start the installation by clicking Install SIMATIC NET Software.
  2. The PC configuration screen appears. Click Next.
  3. Select the English language option, then click Next. Click Next again.
  4. Click yes to the licensing agreement screen.
  5. Enter your Name and Company on the User Registration screen.
  6. If you already have SIMATIC NET software installed, this will be the drive selected by default. Clear the Run automatic authorization option, and then click next. The Setup: Configuration screen appears.
  7. Select all application options to be installed. (This is necessary if you do not already have STEP7 installed on your machine. If STEP7 v5.2 or higher is already installed, you do not have to select the NCM PC/S7 v5.2 application.) Click Next.
  8. The applications you selected are installed. At the prompt, click OK to restart your system. The system restarts and installs the selected applications. Click Finish to restart your system again.
The SIMATIC NET software is now installed.

Configuring the SIMATIC NET software

This step involves using the Commissioning Wizard to configure the software you installed in the previous step.

Configuring the module

When your system restarts after the software has been installed, your system's hardware configuration is scanned. The Commissioning Wizard appears automatically. (You can also access the Commissioning Wizard at Start/Simatic/SIMATIC NET/Settings/Commissioning Wizard.)
The number of steps required depends on the number of PC Ethernet cards (or modules) detected in your PC. The more modules you operate in the computer, the more steps are required.
  1. Click Next.

    An Ethernet Network Card with with the IP addresses settings shown above was found. This is the network card that will be configured for communication with the Siemens PLC. This is put on index 5.

    Note: The index of the network card can be set with the NCM PC Configuration (hardware configuration). The station index defaults to 5 if you use the Commissioning Wizard.
  2. Select the Use the module for productive operation in configured PC station option, and then click next.
  3. Clear the SIMATIC NET OPC Server in configured PC Station option and select the Configure more applications option. Then click next.
  4. Register the names for your user application: enter VFD1 in the Name text box. This user application is put on index 1. Click Next.

    Note: The name of the application is the VFD name. This comes later in the IFIX Project Editor under Communication | Ports in the Special options text box.
  5. Click Next. This screen appears, confirming you have completed configuring the module:
  6. The configuration is saved and the PC station is reconfigured. Your existing configuration data is overwritten. Click OK to confirm at the prompt.
This completes the module configuration.

Configuring the project with the PC Station Wizard

The next step to configure the project using the PC Station Wizard.
  1. Start the PC Station Wizard.
  2. Choose Create a new project and configuration. A new project is created. Click Next.
  3. Define a new Project name; this example uses IFIXS7. Specify where the copy of the local PC station settings resides, and then click Next.
  4. Select the Edit network and connection configuration option, and then click Finish. NetPro automatically starts, displaying the network configuration.
  5. Click the Application box in the PC station, and then choose Insert | New Connection. The Insert New Connection dialog box appears.
  6. Choose the Unspecified item in the tree. From the Type menu in the Connection area, choose S7 connection. Then click Apply, and then click OK.
  7. In the Properties -S7-Connection dialog box, the local IP Address should be the address of the Ethernet card in the PC. This example uses 192.168.0.190. The partner IP Address should be that of the Ethernet CP343 module in the PLC, in this case 192.168.0.148. The Local ID is the connection identifier of this connection (here it is S7-Connection_1). It will be used later on as the address of the IFIX I/O device. Click Address Details.

    Note: The Local ID S7-Connection_1 is used later in the IFIX Project Editor under Communication | I/O Devices in the I/O Device Address text box. This name is case-sensitive and cannot not contain any spaces.
  8. In the Address Details dialog box, enter the card location of the CPU that the SIMATIC S7 communicates with. Here the card location is 2. Click OK.

    Note: Some power supplies might occupy 2 slots. If so, the card location of the CPU is one higher at 3.
  9. In the NetPro window the new S7-Connection_1 connection appears. Choose Network | Save and Compile. The Save and Compile dialog box appears.
  10. Select the Compile and check everything option, and then click OK.
  11. After completing the save and compile operation, a message appears in the NetPro window. This indicates the warnings and errors present in the configuration. If warnings occur here, then this is to be handled as information only. But if errors occur, the project configuration cannot be loaded. To view errors, choose View |Outputs.
  12. Highlight by clicking on the PC Station (TESTXP). Afterwards the connection table disappears in the message window. From the NetPro menu choose PLC | Download | Selected Stations to transfer the project configuration to the PC. Alternatively, right-click the PC Station and choose Download | Selected Stations.
  13. To confirm the overwrite of configuration data and to proceed with the download, click Yes.
  14. To confirm stopping the Target Module (Network interface Card), click OK.
  15. The configuration should now be successfully loaded. Exit NetPro and click next, and next again to finish the Commissioning Wizard. If you have errors, see for details.

Defining an access point for the application

The next step is to define an access point for the application.
  1. The Configuration Console should appear after terminating the Commissioning Wizard. If it doesn't, open the Configuration Console by selecting START / SIMATIC / Simatic Net / Settings / Configuration Console.
  2. In the Configuration Console dialog box, right-click the Access Point object, and choose New | New access point.

    Note: You can choose any name for the Access point, but it cannot contain spaces and be longer than 32 characters.
  3. In the New access point dialog box, enter your access point name (this example uses IFIXS7). Select the hardware component that will be associated with this access point (TCP/IP -> ASUSTeK/Broadcom 440x in the example).

    Note: The access point name is used later in IFIXSCADA in the Project Editor under Communication | Boards in the Special Options text box. The access point name is case-sensitive.

    After creating the access point the Configuration Console should look like this:
  4. Close the Configuration Console.
This completes the Simatic NET software configuration.

Configuring the S7 driver

The IFIX S7 driver needs three names (settings) from the SIMATIC NET software
configuration. The following points are needed:
SIMATIC NETConfiguration
example
IFIX Info
Access point of the applicationIFIXS7Boards, Special options
Field
VFD/Application NameVFD1Ports, Special options Field
Name of the connection (or Local
ID)
S7-Connection_1IODevices, Address Field

Using the Express Wizard

You use the Express Wizard to configure your communications.
  1. In IFIX Explorer, create a new (empty) test project.
  2. In the IFIXSCADA Project Editor, choose Communication | Express Wizard.
  3. In the wizard:
    • Create a new I/O Servers e.g. IOServer.
    • Create a new I/O Device e.g. IODev.
    • Select external as the type of the I/O Device (PLC): Select the Siemens | S7-300 or S7-400| TCPIP using NE2000 network CARD for Windows NT for NT/W2K/XP/2003, or the TCPIP using NE2000 network CARD for Windows 95/98 for 95/98/ME option.
  4. Define the name of the connection. In this example it is S7-Connection_1.

    Note: Do not select the Link I/O Device to an external tag Database option.
This completes this section.

Setting the Access Point

The next step in the process is to set the access point of the application.
  1. Open the Boards dialog box by choosing Communication | Boards.
  2. In the Special Opt text box, enter the access point of the application. This example uses IFIXS7.

Setting the VFD name

The next step is to set the VFD name.
  1. Open the Ports dialog box by choosing Communication | Ports.
  2. In the Special Opt text box enter the VFD Name. In this case VFD1.

Checking the name of the S7 connection

The next step is to check the name of the S7 connection.
  1. Open the I/O Device dialog box by choosing Communication | I/O Devices.
  2. In the Address field enter the name of the connection to the PLC. This example uses S7-Connection_1.

Variable declaration

The next step is to declare the variables.
  1. Open the Tags Form by choosing Tags | Variable Tags.
  2. Create a variable with the following information:
    • Variable Tag Name: TestInteger
    • I/O Device Name: IODev
    • Type: INT
    • Address: DB190,0

Troubleshooting your S7 connection

Question: I receive the following error message when downloading the PC station in the SIMATIC NCM PC manager:
  • "The module "station manager" cannot be contacted. Change the on-line interface."
  • "For On-line connections via the PC internal interface a station name must be assigned in the component configurator. This name must be identical to the name of the PC station, as configured in the STEP7 (or Simatic Net) project."
  • "Online: No connection could be made. The participant does not announce itself."
Solution
  1. Check in SIMATIC NCM PC Manager under the Menu option Options | Set PG/PC Interface, whether the point of entrance S7ONLINE is linked with the PC internal (local) interface.
  2. The Station Configuration Editor tells you whether your module is Online. You can start the Station Configuration Editor by double-clicking the icon. This should not be OFFLINE, so to change its mode of operation, click Change Mode. The mode of operation should now change to ONLINE.
  3. Check the station name in the Station Configuration Editor. This must match with the name in SIMATIC NCM PC Manager. You can change the station name in the Station Configuration Editor by clicking Station Name.
  4. Open the Station Configuration Editor and the SIMATIC NCM PC Manager. Check the order and the number of configured components and the indexes that are used. These should match.
banner
Previous Post
First

1 comment:

  1. Siemens Simatic Step 7 Programmer'S Handbook - Thiết Bị Plc >>>>> Download Now

    >>>>> Download Full

    Siemens Simatic Step 7 Programmer'S Handbook - Thiết Bị Plc >>>>> Download LINK

    >>>>> Download Now

    Siemens Simatic Step 7 Programmer'S Handbook - Thiết Bị Plc >>>>> Download Full

    >>>>> Download LINK

    ReplyDelete