MaxPlant
Уроки TIA Portal, STEP7 и HMI
Содержание уроков
Урок 31
SIMATIC Automation Tool
SIMATIC Automation Tool – программный инструмент для ввода в эксплуатацию и технического обслуживания систем автоматизации SIMATIC.
SIMATIC TIA Portal – среда разработки, ввода в эксплуатацию и технического обслуживания систем автоматизации SIMATIC.
Если у вас есть SIMATIC TIA Portal, то SIMATIC Automation Tool вам не нужен.
Функционал SIMATIC Automation Tool
Работа с сетями
- сканирование сети и создание таблицы доступных в сети устройств (CPU, модулей, HMI, коммутаторов SCALANCE,
станций распределённого ввода-вывода и др.) - обнаружение устройств с помощью включения мигания светодиодных индикаторов на CPU или экранах панелей оператора
- изменение адресов устройств (IP, подсетей, шлюзов)
- изменение имён устройств в сети PROFINET
Конфигурирование системы
- установка системных часов в CPU
- обновление программ ПЛК или HMI
- выгрузка, добавление или удаление рецептов из ЦПУ
- выгрузка или удаление журналов данных (Data Log) из ЦПУ
- обновление прошивок модулей
Операции
- изменение режима работы ПЛК: RUN <-> STOP
Диагностика и обслуживание
- резервное копирование данных ЦПУ или HMI
- восстановление данных из файла резервной копии для ЦПУ или HMI
- просмотр диагностического буфера ЦПУ
- сброс коммуникационных параметров
- сброс памяти ЦПУ
- извлечение сервисных данных из ЦПУ
- форматирование карты памяти в ЦПУ
- сброс устройств на заводские настройки
- документирование и сохранение сетевой информации в файлах
Задание
Сделать резервную копию проекта, отформатировать карту памяти ЦПУ, восстановить данные ЦПУ из сохранённой резервной копии.
Заменить интерфейсный модуль ET200SP и восстановить IP адрес и сетевое имя для ET200SP.
Решение
- Открываем SIMATIC Automation Tool, выбираем сеть и запускаем процедуру сканирования сети:
Operations -> Scan Network -> Scan Entire Network: - SIMATIC Automation Tool обнаруживает два устройства в сети: ПЛК и ET200SP:
- Выбираем галочкой PLC и переводим его в режим STOP:
- Выполняем процедуру полного резервирования:
Operations > Backup Device > Full backup: - Смотрим в какую папку сохранился файл резервной копии: Options -> Settings:
- Форматируем карту памяти в ЦПУ:
Operations -> Reset -> Format Memory Card:и убеждаемся, что программа ПЛК удалилась, но сетевые адреса и имена остались:
Теперь видим, что изменения есть, но IP адрес ЦПУ не изменился.
- Сбрасываем ЦПУ на заводские настройки:
Operations -> Reset -> Reset to Factory Defaults:Видим, что IP адрес ЦПУ опять не изменился.
- Сбрасываем коммуникационные параметры:
Operations -> Reset -> Reset Communication Parameters:Видим, что IP адрес ЦПУ опять не изменился.
- Изменяем IP адрес ЦПУ. Для этого задаём новый адрес в колонке New IP Address и выполняем процедуру
Operations -> Update -> Set IP Address:Видим, что IP адрес ЦПУ изменился:
- Восстанавливаем данные карты памяти из сохранённого файла резервной копии Для этого переходим на вкладку «Restore from Backup»,
выбираем файл резервной копии и выполняем процедуру
Operations -> Restore Device: - Сканируем сеть и видим, что программа ПЛК загрузилась, но сетевые настройки восстановились только у ПЛК:
- Задаём вручную сетевые настройки для ET200SP, которые были заданы в проекте:
- Задаём IP адрес для ET200SP:
- Задаём сетевое имя для ET200SP:
Сохраняем проект .
Урок 32. Как установить связь между онлайн симулятором панели Weintek и S7-PLCSIM для отладки программ HMI-PLC
без панели оператора и ПЛК
Урок 30. Как загрузить две программы ПЛК SIMATIC S7-1500 в S7-PLCSIM Advanced V2.0 на локальной и удалённой машинах и подключить к ним WinCC по TCP
-
Contents
-
Table of Contents
-
Bookmarks
Quick Links
SIMATIC Automation Tool V2.1 user
guide
SIMATIC
S7
SIMATIC Automation Tool V2.1
user guide
Manual
V2.1.1 07/2016
A5E33042676-AC
___________________
Preface
SIMATIC Automation Tool
___________________
overview
Prerequisites and
___________________
communication setup
___________________
Tool operations
___________________
Saving your device table
information
___________________
Menu, toolbar, and shortcut
key reference
___________________
SIMATIC Automation Tool
API for .NET framework
___________________
SIMATIC Automation Tool
device support
___________________
Network example and API
interfaces
1
2
3
4
5
6
7
A
Summary of Contents for Siemens SIMATIC S7
Prerequisites and communication setup
2.3
Starting the SIMATIC Automation Tool
Options for starting the SIMATIC Automation Tool:
● Double-click the SIMATIC Automation Tool shortcut icon on your desktop.
● Use the Windows Start button.
– Click the Windows start button and «All Programs».
– Click the «Siemens Automation» folder, then the «SIMATIC Automation Tool» folder,
● Start the Windows command prompt (cmd.exe) and enter the executable file name and
optional project parameter.
AutomationTool.exe [projectname.sat].
2.4
CPU configuration requirements
Ethernet address configuration
If you want the SIMATIC Automation Tool to set the IP address or PROFINET name of a
CPU, then your TIA portal project must enable these actions in the CPU device
configuration. Use the TIA portal to view and modify a program’s IP protocol setting, as
shown in the following S7-1200 example.
IP address and PROFINET name change
● It Is possible for CPUs directly connected to the network that is connected to the
SIMATIC Automation Tool (including connection through an Ethernet switch).
● It is not possible for CPU’s with an indirect connection through a CP module, or a CPU’s
secondary Ethernet port when the direct connection is to the primary Ethernet port.
● It is not possible for CPU’s on another network with a connection to the SIMATIC
Automation Tool that passes through an IP address router.
18
and finally «Automation Tool».
SIMATIC Automation Tool V2.1 user guide
Manual, V2.1.1 07/2016, A5E33042676-AC
1 Preface Software license and product updates 1 SIMATIC S7/HMI SIMATIC Automation Tool V3.1 User Guide Manual SIMATIC Automation Tool overview 2 Prerequisites and communication setup 3 Tool operations 4 Saving your Device table information 5 Menu, toolbar, shortcut keys and reference information 6 SIMATIC Automation Tool API for.net framework 7 SIMATIC Automation Tool device support 8 V3.1, 10/2017 A5E AF
2 Legal information Warning notice system This manual contains notices you have to observe in order to ensure your personal safety, as well as to prevent damage to property. The notices referring to your personal safety are highlighted in the manual by a safety alert symbol, notices referring only to property damage have no safety alert symbol. These notices shown below are graded according to the degree of danger. DANGER indicates that death or severe personal injury will result if proper precautions are not taken. WARNING indicates that death or severe personal injury may result if proper precautions are not taken. CAUTION indicates that minor personal injury can result if proper precautions are not taken. NOTICE indicates that property damage can result if proper precautions are not taken. If more than one degree of danger is present, the warning notice representing the highest degree of danger will be used. A notice warning of injury to persons with a safety alert symbol may also include a warning relating to property damage. Qualified Personnel The product/system described in this documentation may be operated only by personnel qualified for the specific task in accordance with the relevant documentation, in particular its warning notices and safety instructions. Qualified personnel are those who, based on their training and experience, are capable of identifying risks and avoiding potential hazards when working with these products/systems. Proper use of Siemens products Note the following: Trademarks WARNING Siemens products may only be used for the applications described in the catalog and in the relevant technical documentation. If products and components from other manufacturers are used, these must be recommended or approved by Siemens. Proper transport, storage, installation, assembly, commissioning, operation and maintenance are required to ensure that the products operate safely and without any problems. The permissible ambient conditions must be complied with. The information in the relevant documentation must be observed. All names identified by are registered trademarks of Siemens AG. The remaining trademarks in this publication may be trademarks whose use by third parties for their own purposes could violate the rights of the owner. Disclaimer of Liability We have reviewed the contents of this publication to ensure consistency with the hardware and software described. Since variance cannot be precluded entirely, we cannot guarantee full consistency. However, the information in this publication is reviewed regularly and any necessary corrections are included in subsequent editions. Siemens AG Division Digital Factory Postfach NÜRNBERG GERMANY P 09/2017 Subject to change Copyright Siemens AG All rights reserved
3 Preface Security information Siemens provides products and solutions with industrial security functions that support the secure operation of plants, systems, machines and networks. In order to protect plants, systems, machines and networks against cyber threats, it is necessary to implement and continuously maintain a holistic, state-of-the-art industrial security concept. Siemens’ products and solutions constitute one element of such a concept. Customers are responsible for preventing unauthorized access to their plants, systems, machines and networks. Such systems, machines and components should only be connected to an enterprise network or the internet if and to the extent such a connection is necessary and only when appropriate security measures (e.g. firewalls and/or network segmentation) are in place. For additional information on industrial security measures that may be implemented, please visit ( Siemens’ products and solutions undergo continuous development to make them more secure. Siemens strongly recommends that product updates are applied as soon as they are available and that the latest product versions are used. Use of product versions that are no longer supported, and failure to apply the latest updates may increase customers’ exposure to cyber threats. To stay informed about product updates, subscribe to the Siemens Industrial Security RSS Feed under ( Service and support In addition to this user guide, Siemens offers technical expertise on the Internet and on the Siemens automation Web site ( and the Siemens Industry Online Support Web site ( Contact your Siemens distributor or sales office for assistance in answering any technical questions, for training, or for ordering S7 products. Because your sales representatives are technically trained and have the most specific knowledge about your operations, process and industry, as well as about the individual Siemens products that you are using, they can provide the fastest and most efficient answers to any problems you might encounter. Document source language The English version of the SIMATIC Automation Tool user guide is the authoritative (original) language for SIMATIC Automation Tool information. Siemens identifies the English manual as the authoritative original source in the case of discrepancies between the translated manuals. Manual, V3.1, 10/2017, A5E AF 3
4 Preface 4 Manual, V3.1, 10/2017, A5E AF
5 Table of contents Preface Software license and product updates Software license SIMATIC Automation Tool software updates SIMATIC Automation Tool overview Managing networks Network access Network options NET API (application interface).dll file Prerequisites and communication setup PG/PC Operating system, VM software, and security software support Installing the SIMATIC Automation Tool Starting the SIMATIC Automation Tool Configuration requirements Communication setup Tool operations CPU passwords Working with the Device table and Event Log Multi-thread processing options Scan a network Inserting a device Update IP, subnet, and gateway addresses Update PROFINET device names Set CPUs to RUN or STOP mode Identify devices Update device programs from the SIMATIC Automation Tool Upload, add, replace, and delete Recipes in CPUs Upload and delete Data Logs in CPUs Install new firmware in devices Backup and Restore CPU or HMI data Reset CPU memory Manual, V3.1, 10/2017, A5E AF 5
6 Table of contents 4.16 Reset CPUs and modules to factory default values Format memory card Retrieve Service Data from CPUs Set time in CPUs Show CPU diagnostic buffer Execution order of operations Saving your Device table information Save/Save as — Device table stored in protected.sat format Import/Export — Device table loaded from/stored in open.csv format Menu, toolbar, shortcut keys and reference information Main menu File menu Edit menu Operations menu Options menu Options menu SIMATIC Automation Tool pathnames General settings Communications settings Projects settings Firmware update settings Program update settings Service Data settings Backup/Restore settings Recipes settings Data Logs settings Event Log settings Import / Export settings Tools menu Help menu Toolbar icons Shortcut keys Safety program definition SIMATIC Automation Tool API for.net framework Introduction to the API API software license and version compatibility Designing a user interface application for Fail-Safe devices and safety-relevant operations API support for safety-relevant operations and Fail-Safe devices User interface programming guidelines for safety-relevant operations Color coding safety fields in your user interface Coloring a CPU device icon Coloring device data Coloring a CPU password Manual, V3.1, 10/2017, A5E AF
7 Table of contents Coloring a program folder Coloring a program password Hamming codes Architectural overview Referencing the API in a user interface application Common support classes EncryptedString class Result class Diagnostic class DataChangedEventArgs class ProgressChangedEventArgs class Common support interfaces IRemoteFile interface IRemoteFolder interface IRemoteInterface interface IHardware interface IModule interface IBaseDevice interface IHardwareCollection interface IModuleCollection interface Network class Network constructor QueryNetworkInterfaceCards method SetCurrentNetworkInterface method CurrentNetworkInterface property ScanNetworkDevices method SetCommunicationsTimeout method GetCommunicationsTimeout method CheckValidLicense method GetEmptyCollection method IProfinetDeviceCollection class Iterating items in the collection Iterating items in the collection GetEnumerator method Count property [ ] property Filtering items in the collection Collection items FilterByDeviceFamily method FilterOnlyCPUs method Finding a specific device in the collection FindDeviceByIP method FindDeviceByMAC method Serialization Transferring a collection to/from an external data file WriteToStream method ReadFromStream method Manually adding items to the collection InsertDeviceByIP method Manual, V3.1, 10/2017, A5E AF 7
8 Table of contents InsertDeviceByMAC method Copying data from a collection CopyUserData method Removing devices from the collection Clear method Remove method IProfinetDevice interface IProfinetDevice properties IProfinetDevice methods RefreshStatus method FirmwareUpdate method Identify method Reset method SetIP method SetProfinetName method ValidateIPAddressSubnet method ValidatePROFINETName method IProfinetDevice events DataChanged event ProgressChanged event IModuleCollection class and module properties Modules property and IModuleCollection class IModule interface ICPU interface Identifying CPU devices in an IProfinetDeviceCollection ICPU properties ICPU flags Program Update flags Restore flags Feature flags ICPU methods Protected CPUs and passwords SetPassword method SetProgramFolder method SetProgramPassword method ProgramUpdate method SetBackupFile method SetBackupFilePassword method Restore method (ICPU interface) Backup method (ICPU interface) DownloadRecipe method DeleteDataLog method DeleteRecipe method GetCurrentDateTime method GetDiagnosticsBuffer method MemoryReset method ResetToFactoryDefaults method SetOperatingState method SetCurrentDateTime method UploadDataLog method UploadRecipe method Manual, V3.1, 10/2017, A5E AF
9 Table of contents UploadServiceData method FormatMemoryCard method DetermineConfirmationMessage RemoteInterfaces properties Decentralized I/O modules IRemoteInterface properties IHMI interface IHMI interface IHMI properties and flags IHMI properties Program update flags Restore flags Feature flags Backup method (IHMI interface) ProgramUpdate method (IHMI interface) Restore method (IHMI interface) SetProgramFolder method SetBackupFile method Support classes Diagnosticsitem Exceptions CriticalInternalErrorException API enumerations DataChangedType DeviceFamily ConfirmationType ErrorCode Language OperatingState OperatingStateREQ ProgressAction RemoteInterfaceType FeatureSupport ProtectionLevel ConfirmationType FailsafeOperation RemoteFolderType Network example Manual, V3.1, 10/2017, A5E AF 9
10 Table of contents 8 SIMATIC Automation Tool device support Unrecognized firmware versions and devices ET ET 200AL ET 200AL IM support ET 200AL SM and IO-Link support ET 200eco support ET 200M IM support ET 200MP IM support ET 200S ET 200pro ET 200pro CPU support (based 0n S7-1516) ET 200pro IM support ET 200pro IO-Link, RFID support ET 200SP ET 200SP CPU support (based on S7-151x) ET 200SP IM and Server module support ET 200SP SM, AS-i, CM, CP, TM, IO-Link, Motorstarter support S S CPU support S I/O and other module support S S CPU support S I/O and other module support SIMATIC HMI (Human Machine Interface) HMI Basic panels support HMI Comfort panels support HMI Mobile panels support SITOP (Power supplies) SITOP support (Power supply) RFID and MOBY (Communication modules) RFID (Radio Frequency Identification) MOBY (DeviceNet interface) Index Manual, V3.1, 10/2017, A5E AF
11 Software license and product updates Software license Software license requirement The SIMATIC Automation Tool requires a software license for full feature operation. Unlicensed operation Without a license, the SIMATIC Automation Tool enforces the following limitations: You can only perform one operation to a single device at a time You cannot use the API (Application Programming Interface) for custom application programming. You refresh only one device at a time. Getting a license You can purchase a license online through an account at the Siemens Mall and install it with the Automation License Manager (ALM) software. Installing a license If not already installed, the SIMATIC Automation Tool installation also installs/updates the ALM license manager. 1. Order the product from the Siemens Mall. 2. An is sent to you that provides a «Delivery Note No.» and a temporary password. 3. Start the ALM (Automation License Manager) application on your PG/PC: 4. Double-click «Web License Key Download» from the navigation pane. Wait until the SIEMENS Online Software Delivery page appears in the ALM window. Manual, V3.1, 10/2017, A5E AF 11
12 Software license and product updates 1.1 Software license 5. Enter data in SIEMENS Online Software Delivery page: Delivery Note No. Password Access code (read from image) 6. Download software with the Available button. 7. Drag the license rectangle to a directory on your hard drive. Drop the license rectangle on a computer location shown in the right-side tree in the Automation License manger. 12 Manual, V3.1, 10/2017, A5E AF
13 Software license and product updates 1.2 SIMATIC Automation Tool software updates 1.2 SIMATIC Automation Tool software updates Getting automatic software updates The TIA Software updater software is installed during the SIMATIC Automation Tool installation process. If your PG/PC is connected to the Internet, then you can download SIMATIC Automation Tool software updates directly from Siemens through the Internet. The SIMATIC Automation Tool allows you to automatically search for available updates to installed SIMATIC software products. If updates are available, you have the option to install the updates on your PG/PC. Manual, V3.1, 10/2017, A5E AF 13
14 Software license and product updates 1.2 SIMATIC Automation Tool software updates 14 Manual, V3.1, 10/2017, A5E AF
15 SIMATIC Automation Tool overview Managing networks Managing networks of SIMATIC devices After you create, verify, and download control programs with the Siemens TIA Portal, you can use the SIMATIC Automation Tool for configuring, operating, maintaining, and documenting devices on automation networks. Note You cannot use the SIMATIC Automation Tool to read devices on your automation network if S7-PLCSIM is running on the same PG/PC (programmer/personal computer) at the same time as the SIMATIC Automation Tool. You must close S7-PLCIM for the SIMATIC Automation Tool to be able to read a device network. Automation Tool operations for configuration, operation, and maintenance The SIMATIC Automation Tool allows you to perform many useful operations on a network of devices: Network operations Scan the network and create a device table that shows the accessible devices on the network. (Page 46) The device table includes CPUs, modules, HMIs, and other Siemens devices. You can save the device table (Page 89) in a secure *.sat project file or an open text.csv file. Identify devices by flashing LEDs or HMI screens (Page 55) Update device addresses (IP, subnet, gateway) (Page 51) Update the PROFINET name (station name) of a device (Page 53) System configuration Set the time in a CPU to the current time in your PG/PC (Programmer/Personal Computer) (Page 85) Update a CPU program or HMI operating system and runtime software (Page 56) Upload, add, replace, or delete Recipe data from a CPU (Page 64) Upload or delete Data Log data from a CPU (Page 67) Update module firmware (Page 69) Operation Put a CPU in RUN or STOP mode (Page 54) Manual, V3.1, 10/2017, A5E AF 15
16 SIMATIC Automation Tool overview 2.1 Managing networks System diagnostics and maintenance Backup/Restore data to/from a backup file for CPU or HMI device (Page 74) Show the diagnostic buffer of a CPU (Page 86) Reset CPU memory (Page 78) Retrieve Service Data from a CPU (Page 83) Format the SIMATIC memory card that is installed in a CPU (Page 81) Reset devices to factory default values (Page 79) Document and save your network information in a standard text.csv file or a password protected.sat file (Page 242) Figure 2-1 SIMATIC Automation Tool device table Network device support The SIMATIC Automation Tool supports the following types of Siemens devices: Standard CPUs Fail-Safe CPUs HMIs PROFINET devices The DCP (Discovery and Configuration Protocol) operations can work with supported Siemens PROFINET devices, unsupported Siemens PROFINET devices, and unsupported non-siemens PROFINET or Ethernet devices. DCP MAC address based operations list: Scan a network Identify devices (Flash device LED/HMI screen) Update IP address, subnet mask, and gateway address on devices Update PROFINET device name For information on supported Siemens devices and operations see SIMATIC Automation Tool device support (Page 241) 16 Manual, V3.1, 10/2017, A5E AF
17 SIMATIC Automation Tool overview 2.1 Managing networks Example S network installation Panel shop fabrication and initial program load Each CPU uses the same hardware configuration and control program. The CPU PROFINET configuration uses «Set IP Address on the device» and «Set PROFINET device name on the device» options. Each Panel is identical. You can use the SIMATIC Automation Tool, a SIMATIC SD memory card, or the TIA Portal to load CPU/HMI devices with project data. If you are managing a network with many devices, the SIMATIC Automation Tool can simplify operations and save time. You can process an operation on multiple devices at the same time. The SIMATIC Automation Tool uses multi-threading, which means many operations can run concurrently. While the PG/PC is performing an operation on one device, another thread can begin the operation on another device. Multi-threading is the default setting in the Communications settings (Page 99). You can disable multi-threading if you choose. Manual, V3.1, 10/2017, A5E AF 17
18 SIMATIC Automation Tool overview 2.1 Managing networks See also ET 200AL SM and IO-Link support (Page 242) ET 200eco support (Page 243) ET 200M IM support (Page 244) ET 200MP IM support (Page 244) ET 200S (Page 245) ET 200pro IM support (Page 247) ET 200pro IO-Link, RFID support (Page 247) ET 200SP CPU support (based on S7-151x) (Page 248) ET 200SP IM and Server module support (Page 249) ET 200SP SM, AS-i, CM, CP, TM, IO-Link, Motorstarter support (Page 250) S CPU support (Page 252) S I/O and other module support (Page 253) S CPU support (Page 257) S I/O and other module support (Page 258) HMI Basic panels support (Page 259) HMI Comfort panels support (Page 260) HMI Mobile panels support (Page 261) SITOP support (Power supply) (Page 262) RFID (Radio Frequency Identification) (Page 263) MOBY (DeviceNet interface) (Page 263) 18 Manual, V3.1, 10/2017, A5E AF
19 SIMATIC Automation Tool overview 2.2 Network access 2.2 Network access Communicating with network devices The SIMATIC Automation Tool network scan discovers network devices connected directly to a network by using the MAC (Media Access Control) address. A MAC address is unique to each device, cannot be changed, and is printed on the device. Connected devices are discovered whether they are configured with an IP, subnet, and gateway address, or not configured (addresses are ). MAC address based operations use the DCP (Discovery and Configuration Protocol). DCP is an Ethernet standard. The SIMATIC Automation Tool can use the DCP-MAC address operations Scan Entire Network, Identify, Update IP address, and Update PROFINET name for all directly connected network devices (supported PROFINET devices, unsupported PROFINET devices, and unsupported non-siemens Ethernet devices). The IP address based operations only work for supported Siemens devices. Simple network with one CPU and local I/O: MAC address based operations are possible Valid IP address and TIA Portal Device configuration in CPU is necessary, for the network scan to display a CPU’s local I/O devices and to enable IP address based operations. Multiple CPUs with local I/O connected through an Ethernet switch: MAC address based operations are possible for all devices Valid IP address and TIA Portal Device configuration in CPU is necessary, for the network scan to display the CPU’s local I/O devices and to enable IP address based operations. CPUs in complex networks with decentralized I/O and IP address routers: MAC address based operations are possible only for devices that are directly connected to the same subnet as the PG/PC running the SIMATIC Automation Tool. Valid IP address and TIA Portal Device configuration in the CPUs is necessary, for the network scan to display devices located behind the CPUs and to enable IP address based operations. For example, an S CPU has a PROFINET network connection to the SIMATIC Automation Tool and uses a local CP module to connect with another PROFINET network where decentralized I/O devices are connected. You must assign a valid IP address to the S CPU and successfully compile and download your project’s TIA portal device configuration, before the decentralized I/O network is visible in the SIMATIC Automation Tool Device table. Note that only the Firmware Update operation is possible for devices that are indirectly connected behind a CPU, CM, or CP module. Manual, V3.1, 10/2017, A5E AF 19
20 SIMATIC Automation Tool overview 2.2 Network access The type of network access you have depends on the command that you execute, as shown in the following table. SIMATIC Automation Tool command Device address used Must provide CPU password for a protected CPU Scan (discover CPUs, HMIs, I/O, and other devices) Identify devices (Flash LED/HMI MAC No screen) Set IP address, subnet mask, and MAC No gateway address on devices Set PROFINET name on devices MAC No Reset devices to factory default MAC Not applicable values (for PROFINET I/O devices only) PG/PC and device connectivity MAC No Local network: You can access network devices through Ethernet switches, but cannot access devices on another network through an IP address router. VPN (Virtual Private Network) connection to the local network Put CPUs in RUN or STOP IP Yes 1 Local network: You can access network devices Set CPU time to PG/PC time IP Yes 1 through Ethernet switches. Perform Program Update: CPU IP Yes 3 Remote network: You can access devices on programs another network through an IP address router. Perform Program Update: HMI IP No VPN connection to the local network update for operating system and runtime software Upload Recipe data from a CPU IP Yes 2 Add, replace, or delete Recipe data IP Yes 1 from a CPU Upload Data Log data from a CPU IP Yes 2 Delete Data Log data from a CPU IP Yes 1 Backup CPU to a file IP Yes 2 Backup HMI to a file IP No Restore CPU from backup file IP Yes 3 Restore HMI from backup file IP No Upload Service Data from CPUs IP Yes 2 Read CPU Diagnostic buffer IP Yes 2 Reset CPU memory IP Yes 3 Reset devices to factory default IP Yes 3 values Update firmware in devices IP Yes 3 Format memory card IP Yes 3 1 Requires the «Full access (no protection)» access level for all CPUs. 2 Requires the «Read access» access level for all CPUs. 3 HMI devices: No password required. Standard CPUs: Requires the «Full access (no protection)». Fail-Safe CPUs: Requires either the «Full access (no protection)» or the «Full access incl. fail-safe (no protection)» access level, depending on the firmware version in the CPU. You must also reselect and confirm the device or devices for the operation. 20 Manual, V3.1, 10/2017, A5E AF
21 SIMATIC Automation Tool overview 2.3 Network options Note IP subnets and network interface protocols The PG/PC that runs the SIMATIC Automation Tool and the devices connected to your local network must use appropriate IP subnet assignments. The type of network interface protocol that you select («TCPIP» or «TCPIP.Auto») can affect whether the SIMATIC Automation Tool Network is able to discover devices with the network scan operation. See the example in the Communication setup topic (Page 30). 2.3 Network options Local and remote networks The following examples show local and remote networks that the SIMATIC Automation Tool can use. These simplified diagrams show basic connectivity and do not show HMI devices, local I/O, distributed I/O devices (PROFINET and PROFIBUS), and other devices that are also accessible. Different network topologies are also possible. You can fill the SIMATIC Automation Tool Device table by scanning a network (Page 46). The device data in an existing Device table can be exported in.csv format. You can modify existing device data in the.csv text and use the import command to bring the new data into the SIMATIC Automation Tool Device table Example 1: S local network Manual, V3.1, 10/2017, A5E AF 21
22 SIMATIC Automation Tool overview 2.3 Network options Example 2: S remote network Example 3: S combined local and remote networks See also Import/Export — Device table loaded from/stored in open.csv format (Page 90) 22 Manual, V3.1, 10/2017, A5E AF
23 SIMATIC Automation Tool overview 2.4.NET API (application interface).dll file 2.4.NET API (application interface).dll file You can create your own application software that uses the SIMATIC Automation Tool Microsoft.NET API (Page 111) to perform the same device operations as the SIMATIC Automation Tool. The SIMATIC Automation Tool must be installed on any PG/PC that uses this API. The SIMATIC Automation Tool and your application software use the API.dll file and additional S7 communication files. The SIMATIC Automation Tool installation provides all the files that you need. The API files are located in the folder where the SIMATIC Automation Tool is installed. Software license required for V3.0 and later versions The API is disabled in unlicensed mode when operating V3.0 or later versions. If you have a valid license for the SIMATIC Automation Tool, the API is enabled when operating V3.0 and later versions. Manual, V3.1, 10/2017, A5E AF 23
24 SIMATIC Automation Tool overview 2.4.NET API (application interface).dll file 24 Manual, V3.1, 10/2017, A5E AF
25 Prerequisites and communication setup PG/PC Operating system, VM software, and security software support Microsoft Windows 64-bit operating systems support The SIMATIC Automation Tool works with the following 64-bit operating systems. Windows 7 Home Premium SP1 Windows 7 Professional SP1 Windows 7 Enterprise SP1 Windows 7 Ultimate SP1 Windows 10 Home Version 1607 (OS Build 14393) Windows 10 Pro Version 1607 (OS Build 14393) Windows 10 Enterprise Version 1607 (OS Build 14393) Windows 10 Enterprise 2016 LTSB (OS Build 14393) Windows 10 IoT Enterprise 2015 LTSB (OS Build 10240) You can install the SIMATIC Automation Tool and use the unlicensed version to test operations on other Windows 64-bit operating systems. The SIMATIC Automation Tool may install and work correctly with these operating systems. Siemens does not guarantee that the SIMATIC Automation Tools works with other Windows 64-bit operating systems and does not provide technical support in these cases. Virtual machine software support The SIMATIC Automation Tool works with the following VM (Virtual Machine) software VMware Workstation 12.5 VMware Player 12.5 Virus and security software support The SIMATIC Automation Tool works with the following virus and security software Symantec Endpoint Protection 14 McAfee VirusScan Enterprise 8.8 Trend Micro Office Scan Corporate Edition 12.0 Kaspersky Anti-Virus 2017 Windows Defender (as part of Windows operating systems) Qihoo «360 Total Security Essential» 8.8 (for Chinese market) McAfee Application Control Microsoft Bitlocker (part of the Windows operating systems) Manual, V3.1, 10/2017, A5E AF 25
26 Prerequisites and communication setup 3.2 Installing the SIMATIC Automation Tool The SIMATIC Automation Tool may install and work correctly with other virus and security software. Siemens does not guarantee that the SIMATIC Automation Tools works with other virus and security software and does not provide technical support in these cases. 3.2 Installing the SIMATIC Automation Tool Save all your work in progress and close all PG/PC applications before installing the SIMATIC Automation Tool. Installation rules You can only install one version of the SIMATIC Automation Tool on a PG/PC. If you have installed a previous version, you must uninstall it first. The installation executable checks for a previous installation, and responds as follows: If no version of SIMATIC Automation Tool is found, the installation can proceed. If a version older than V3.0 of the SIMATIC Automation Tool is found, the setup informs you that you must uninstall the older version. The setup guides you through uninstalling the older version. You cannot proceed with the installation until you close and restart the installation. If version 3.0 is found, the installation process uninstalls the V3.0 version and installs V3.1. If an existing current version V3.1 of the SIMATIC Automation Tool is found, the setup presents options to modify/upgrade, repair, or uninstall the previous installation. Note You can install the SIMATIC Automation Tool on any device that has the required space as indicated by the setup. You must, however, have at least 1.4 GB free on the C: drive for system files. 3.3 Starting the SIMATIC Automation Tool Use one of the following methods to start the SIMATIC Automation Tool: Double-click the SIMATIC Automation Tool shortcut icon on your desktop. Use the Windows Start button: Click the Windows start button and «All Programs». Click the «Siemens Automation» folder, then the «SIMATIC Automation Tool» folder, and finally «SIMATIC Automation Tool». 26 Manual, V3.1, 10/2017, A5E AF
27 Prerequisites and communication setup 3.4 Configuration requirements 3.4 Configuration requirements If you want the SIMATIC Automation Tool to set the IP address or PROFINET name of a device, then the device’s TIA portal project must enable these actions in the project’s Device Configuration. Compile the project and download the project to the target device, before attempting to change a device’s IP address or PROFINET name. Update IP address and Update PROFINET name are DCP operations that use a MAC address to access the target device. Devices that are indirectly connected must use an IP address for access and cannot use the DCP operations. You must temporarily make a direct connection between the target device and the SIMATIC Automation Tool to change the IP address or PROFINET name. Update IP address and PROFINET name operations Possible for PROFINET devices (CPUs, HMIs, decentralized I/O, and other devices) directly connected to the network subnet that is connected to the SIMATIC Automation Tool, including connection through an Ethernet switch. Not possible for PROFINET devices with an indirect connection behind a directly connected CPU, CP/CM module, interface module, or a CPU’s second Ethernet port. Not possible for PROFINET devices on another network with a connection to the SIMATIC Automation Tool that passes through an IP address router. Manual, V3.1, 10/2017, A5E AF 27
28 Prerequisites and communication setup 3.4 Configuration requirements Example S configuration with TIA Portal software 1. Click the PROFINET port on the device configuration CPU image to view the port parameters. 2. On the Properties tab, click the General tab to view the Ethernet addresses options. Click the IP address is set directly at the device option. This option may be called «Set IP address on the device» or «Set IP address using a different method», depending on which TIA portal version you are using. For multi-port devices like the S CPU, you can similarly configure all ports to enable IP address changes (when connected to the SIMATIC Automation Tool) or you can configure only the port you want to change. 28 Manual, V3.1, 10/2017, A5E AF
29 Prerequisites and communication setup 3.4 Configuration requirements 3. Also on the Ethernet addresses options, click the PROFINET device name is set directly at the device option. This option may be called «Set PROFINET device name on the device», depending on which TIA portal version you are using. This selection allows the SIMATIC Automation Tool to assign a PROFINET station name. For multi-port devices like the S CPU, you can similarly configure all ports to enable PROFINET name changes (when connected to the SIMATIC Automation Tool) or you can configure only the port you want to change. 4. Save your project and download the new configuration changes to the CPU. Note Default settings of PROFINET IP parameters When you create a new TIA portal project, the default PROFINET parameter options are set to «Set IP address in the project» and «Generate PROFINET device name automatically». With the default options, you cannot set IP addresses or PROFINET device names with the SIMATIC Automation Tool. However, you can use other CPU operations like RUN/STOP control, program/firmware updates, time setting, and service data/diagnostic analysis. Manual, V3.1, 10/2017, A5E AF 29
30 Prerequisites and communication setup 3.5 Communication setup 3.5 Communication setup Identifying the network interface card connected to your device network After you connect your PG/PC to a network, you can use the Windows control panel to see the name of the network interface card. In the following example, The SIMATIC device network is connected by an Ethernet to USB converter to a PC running Windows 7. The network names that you actually see on your PG/PC depend on your network hardware. Use the Windows Control Panel to identify the name of the device. 1. Open the Windows Control Panel 2. Click the Network and Sharing center. 3. View your active networks and click the network that is connected to the S CPUs. 4. Click the Details button in the connection status display. 30 Manual, V3.1, 10/2017, A5E AF
31 Prerequisites and communication setup 3.5 Communication setup 5. View the description of the network interface. Assigning the network interface in the SIMATIC Automation Tool You must assign the network interface to a new project before communication can begin. To set the network interface follow these steps: 1. Start the SIMATIC Automation Tool 2. Click the Network Interface Card drop-down list 3. Select the network interface that is connected to your Siemens device network. You might see different network interface selections from those shown in the following image, because the list shows the network interfaces that are available in your PG/PC. If you have selected a network interface card, but the devices do not have valid IP addresses, then you cannot use the IP address based operations. You can use the MAC address based operations and set up valid IP addresses for the devices in your network. MAC address operations Scan for network devices (Page 46) Identify devices (Page 55) Set Ethernet IP addresses (Page 51) Set PROFINET names (Page 53) Reset to factory default values (Page 79) The MAC address based Reset to factory operation only works for PROFINET I/O devices, other devices use an IP address based Reset to factory operation. Manual, V3.1, 10/2017, A5E AF 31
32 Prerequisites and communication setup 3.5 Communication setup Network interface selection As seen in the preceding image, there can be two entries for each network card and the difference is the addition of the characters «.Auto». When you select the Ethernet interface, you have two choices for the type of network protocol: TCP/IP TCP/IP.Auto It is recommended that you select TCPIP without «Auto» because «virtual» IP addresses are not created automatically in the Windows Ethernet adapter. You must assign a valid IP address in the Windows configuration for your PG/PC Ethernet adapter. Alternatively, you can also select TCPIP.Auto. After you perform a network scan, you must verify that automatically created virtual IP addresses do not conflict with the IP addresses of other devices on the network. The TCPIP.Auto protocol has the following advantages: The TCPIP.Auto protocol can discover accessible devices that are not discovered by the TCPIP protocol. You can change the IP addresses of accessible network devices to use a subnet that works with the TCPIP protocol. After a network scan, the PG/PC network adapter always has valid virtual IP addresses for all your Siemens devices. You do not have to assign new IP addresses explicitly in Windows. However, the TCPIP.Auto protocol may cause network communication problems: You cannot assign virtual IP addresses. The Windows operating system automatically assigns virtual IP addresses. Virtual addresses are lost after a power cycle or PG/PC reset. New virtual IP addresses are created during the next network scan that uses the TCPIP.Auto protocol. A virtual IP address might be automatically created that is already used by another node (for example, another PG/PC that is not visible by a SIMATIC Automation Tool Network scan). An address conflict can cause communication errors for some parts of your network that are difficult to diagnose. 32 Manual, V3.1, 10/2017, A5E AF
33 Prerequisites and communication setup 3.5 Communication setup Example use of TCPIP and TCPIP.Auto protocols You can inspect the Windows network adapter IP addresses by entering «ipconfig /all» in the command line window. The «ipconfig /all» command was used to obtain the IP addresses shown in the following example. 1. After a PG/PC reset (reboot) and before running a SIMATIC Automation Tool Network scan, execute «ipconfig /all» in the command line window. The result for the Ethernet adapter card connected to the Siemens device network is shown below. The Windows Ethernet adapter is configured with the IP address Connect a Siemens S PLC that is configured with the IP address The subnet mask is , so the S device is actually configured for a different subnet. The third octet is «3» and must be «2» in order to communicate with the Ethernet adapter’s subnet address. 3. Start the SIMATIC Automation Tool, set the Network interface to the TCPIP protocol, and perform a Network scan. In this case, the S PLC is not found because the S PLC is configured with the wrong subnet address. 4. Change the SIMATIC Automation Tool Network interface to the TCPIP.Auto protocol and perform a Network scan. 5. The network scan uses the TCPIP.Auto protocol and discovers the S device. New S device information is added to the SIMATIC Automation Tool Device table. 6. Execute «ipconfig /all» in the command line window. As seen in the following image, an alternate Ethernet adapter virtual IP address was automatically created. The alternate virtual IP address enables access to the subnet. Multiple virtual IP addresses are created when the TCPIP.Auto protocol discovers multiple subnets in a complex network. The virtual IP addresses are temporary and are deleted if the Windows PG/PC is reset. Manual, V3.1, 10/2017, A5E AF 33
34 Prerequisites and communication setup 3.5 Communication setup 7. The SIMATIC Automation Tool can now connect to the S device using the virtual IP Address and then change the S device’s IP address. Use the SIMATIC Automation Tool to update the IP address. Change the IP address from to Reset the PG/PC and restart Windows. Any virtual IP addresses are deleted after the restart. 9. Start the SIMATIC Automation Tool, set the Network interface to the TCPIP protocol, and perform a Network scan. The S PLC ( ) is discovered and can communicate with the PG/PC Ethernet adapter ( ). No virtual IP addresses are created. Only the IP address configured in the Windows network adapter properties is used. If the network interface card is selected and the device IP addresses are valid, you can use the SIMATIC Automation Tool operations that use an IP address. IP address operations Put CPUs in RUN or STOP (Page 54) Set CPU time to PG/PC time (Page 85) Program update for CPU and HMI devices (Page 56) Upload, add, replace, or delete Recipe data from a CPU (Page 64) Upload or delete Data Log data from a CPU (Page 67) Backup/restore CPU and HMI data (Page 74) Retrieve Service Data from CPUs (Page 83) Show CPU diagnostic buffer (Page 86) Reset CPU memory (Page 78) Format memory card in a CPU (Page 81) Reset devices to factory default values (Page 79) Update firmware in devices (Page 69) 34 Manual, V3.1, 10/2017, A5E AF
35 Prerequisites and communication setup 3.5 Communication setup Note Communication problems with the SIMATIC Automation Tool For example, you send an operation command to multiple devices, but a device does not complete the operation. You see a communication error in the Event Log. Other devices, however, are communicating and executing the operation as you expect. If you have this problem, follow these steps: 1. Reduce the number of simultaneous operations that you allow in the Communications settings (Page 99). 2. Close and restart the SIMATIC Automation Tool. 3. Try the group operation again. If you send an operation command to a device and the connection has a very slow data transfer rate, then you may get a communication timeout error. If you have this problem, then increase the timeout for communications operations in the Communications settings (Page 99). Manual, V3.1, 10/2017, A5E AF 35
36 Prerequisites and communication setup 3.5 Communication setup 36 Manual, V3.1, 10/2017, A5E AF
37 Tool operations CPU passwords If password protection is configured in a CPU, then you must enter a password for the access level that allows the SIMATIC Automation Tool to perform the operation that you want to use. You provide a password in the device table column titled «Password in CPU». The password in the «Password in CPU» column refers to the password protection that currently exists in the target CPU. For example, a new CPU in a packing box from Siemens has no program, no hardware configuration, and no password protection. After a project is loaded in the CPU, you must use the passwords that are configured in that project. The SIMATIC Automation Tool shows you whether a CPU is password-protected or not. The password cell for a CPU is dark gray and not editable if the CPU has no password. Using passwords If a CPU is password-protected, then you must enter a password in the «Password in CPU» cell for a Program Update or Restore from Backup operation to complete successfully. The «Program update» tab has two password entry columns: «Password in CPU» and «Password in Program File». A program file might have a password, which can be different from the existing CPU password. When a program file has a password, you must enter the program file password in the «Password in Program File» cell to perform a program update. After a successful Program Update, the SIMATIC Automation Tool copies the program file password to the CPU password cell. Using this password, the SIMATIC Automation Tool then attempts to open a connection to the CPU, using the new password The «Restore from Backup» tab has two password entry columns: «Password in CPU» and «Password in Backup File». A backup file might have a password, which can be different from the existing CPU password. When a backup file has a password, you must enter the backup file password in the «Password in Backup File» cell. The backup file password becomes the CPU password after the Restore from Backup operation completes. After a successful Restore from Backup operation, the SIMATIC Automation Tool copies the backup file password to the CPU password cell. Using this password, the SIMATIC Automation Tool then attempts to open a connection to the CPU, using the new password. If a CPU password entry is valid, you can hover your mouse cursor over the password field to display a tool tip that shows the access level. Manual, V3.1, 10/2017, A5E AF 37
38 Tool operations 4.1 CPU passwords CPU password access levels A standard CPU has four password access levels and a Fail-Safe CPU has five levels. The SIMATIC Automation Tool operations that require read or write access cannot work with a CPU that has the «HMI access» or «No access» protection level. You must configure a «Read access» or «Full access» password and then enter that password into the device table row, for the target CPU. You can see the CPU access levels in the Protection & Security section of the TIA Portal Device configuration: For additional information on access levels and passwords, refer to the STEP 7 Information System (online help for the TIA Portal). Fail-Safe CPUs and passwords The SIMATIC Automation Tool can work with Fail-Safe CPUs. You can connect to a Fail- Safe CPU and perform some operations using a «Read access» password, or a «Full access (no protection)» password which is described in this guide as the safety F-CPU password. Safety-relevant operations, however, require the safety F-CPU password. The SIMATIC Automation Tool displays a device’s password cell in yellow when you enter a safety F-CPU password. If a Fail-Safe PLC is password-protected, then all safety-relevant operations require that you enter the safety F-CPU password in the «Password in CPU» column. If a Fail-Safe CPU does not use password protection, then safety-relevant operations do not require the safety F-CPU password to initiate the operation. The safety-relevant operations are: Program Update Restore Device from File Reset to Factory Defaults Format Memory Card 38 Manual, V3.1, 10/2017, A5E AF
39 Tool operations 4.1 CPU passwords You must enter the safety F-CPU password in the «Password in Program File» column for a «Program Update» operation, when the program file contains a safety program. You must enter the safety F-CPU in the «Password in Backup File» column for a «Restore from Backup File» operation, when the backup file contains a safety program. Password icons The SIMATIC Automation Tool provides three password status icons. A green checkmark icon means the password is a valid password in the CPU or program file. A red X icon means that password is not a valid password in the CPU or program file. When you enter a password, SIMATIC Automation Tool does not know what operations you may start. Therefore, the password is not validated on entry for a specific operation. For example, updating a safety program requires the safety F-CPU password. For many other operations, the standard Full access (read/write) password is sufficient. A green checkmark does not mean the password is validated for any operations. Access level validation occurs when the operation is initiated. If the password is not legitimized to a sufficient level, an event log error is generated, for each device where this error occurs. The Backup file password cell is the only cell that can display a question mark icon: The Backup file password cell has no icon when the field is disabled or empty. When you select a backup file from the list, or enter a CPU password in the backup file password column, the SIMATIC Automation Tool displays the question mark icon. The SIMATIC Automation Tool cannot validate the password at the time you select a file or enter a password. Manual, V3.1, 10/2017, A5E AF 39
40 Tool operations 4.2 Working with the Device table and Event Log 4.2 Working with the Device table and Event Log The SIMATIC Automation Tool consists of two parts: Device table: The device table is initially empty but after a scan of the network shows the connected devices. Event Log: The Event Log shows the results of operations. For each device, the SIMATIC Automation Tool displays columns with data about the device. Tabs in the device table support a variety of device operations and provide data entry fields. Working with the device table The device table is similar to Microsoft Excel and supports copy and paste operations to or from other applications. The following tips can help you use the device table: Click a column header to sort or reverse sort the rows by that column’s data. Right-click a column header to show/hide any column. Select the Device check box at the top of the device table to select or deselect all devices. Alternatively, you can use the «Edit > Select» menu command to choose either «Select Row(s)» or «Deselect Row(s)». You can also right-click a device row to access the Edit menu. Click the upper left corner of the Device table to highlight all rows. Select consecutive rows: You can click the cell at the left of a row’s check box and drag the cursor up/down to highlight multiple rows. When you right-click a row or selection of rows, the shortcut menu shown below lets you use the Select, Expand, Collapse, Insert, Delete, and Refresh commands with a group of rows. You can create row filters for the Device, Device Type, and Article Number columns. Select one or more devices for operations to perform on multiple devices. The SIMATIC Automation Tool displays selected device rows in bold text. You can also export (Page 90) a device table to a.csv file or import (Page 90) a.csv file to the device table. 40 Manual, V3.1, 10/2017, A5E AF
41 Tool operations 4.2 Working with the Device table and Event Log You can scan the network (Page 46) to fill the device table with devices on your network. You can also insert devices (Page 51) directly. Shortcut menu for table cells When you right-click a device row in the device table, the shortcut menu is the same as the Edit menu (Page 94). Right-click menu for column headers For each tab of the device table, the SIMATIC Automation Tools displays a set of columns by default. You can configure which columns you want to show and which columns you want to hide. To set the columns to show or hide, follow these steps: 1. Right-click the Device header row to display the shortcut menu for the columns. 2. Select the check boxes to show or hide columns for that tab display. Manual, V3.1, 10/2017, A5E AF 41
42 Tool operations 4.2 Working with the Device table and Event Log Filtering the displayed rows You can filter the Device, Device Type, and Article Number columns. Click one of these three column headers and the filter expand button appears in the column header. Click this button to open the filter window. For example, you can select article numbers 6ES HF40-0XB0 and 6ES HF40-0XB0. When you click the OK button, the device table only displays rows that have these article number values. Filtering unsupported devices You can use the General settings (Page 98) to enable/disable the display of unsupported devices. The SIMATIC Automation Tool displays unsupported devices in gray. You can perform only the following operations on unsupported devices: Set IP address Set PROFINET name Identify device Edit the comment for the device Perform editing functions such as copy and paste 42 Manual, V3.1, 10/2017, A5E AF
43 Tool operations 4.2 Working with the Device table and Event Log Working with the Event Log The SIMATIC Automation tool displays the Event Log in the window area below the device table. When you select devices and perform operations, the messages in the Event Log show status information about operational results. By default, any new device operation clears the Event Log at the start of the operation. You can select whether or not to clear the Event Log at the beginning of an operation in the Event Log settings (Page 105). The SIMATIC Automation Tool can also automatically log operation status to a file. Event Log row showing successful operation: Right-click an Event Log column header to show/hide columns: Right-click on an event row to open the menu below: The icons in the Event Log have the following meanings: Operation is successful Operation has failed. The Result column describes the reason for failure. If you save the Event Log, these entries begin with «ERROR:». Operation is successful but includes a warning message. The Result column describes the warning information. If you save the Event Log, these entries begin with «WARNING:». Manual, V3.1, 10/2017, A5E AF 43
44 Tool operations 4.3 Multi-thread processing options Note Event Log and user interface language change When you change the SIMATIC Automation Tool user interface language, the SIMATIC Automation Tool clears the Event Log. Information about previous events is deleted. 4.3 Multi-thread processing options Multi-thread processing If you are managing a network with many devices, the SIMATIC Automation Tool can simplify operations and save time by automatically processing a group of devices with multiple processing threads. While a PG/PC communication processing thread is waiting for a SIMATIC device’s task complete message, other threads can use this time to communicate with other devices in the group. For versions 3.0 or later, you must have a SIMATIC Automation Tool software license installed before you can use more than one processing thread. Devices in a star topology network If your network has a star topology where each device has a direct connection to the PG/PC through an Ethernet switch, then you can safely enable the multiple threads option. Devices in a chain topology network If your network has a chain topology, you should disable the multi-thread option to prevent one device from disrupting the communication to other devices, as described in the Communications settings (Page 99) topic. Multi-thread processing options On the Options>Settings>Communications dialog, you can change the following settings: Disable or enable multiple threads when processing these operations: Update firmware, Reset to factory defaults, Memory reset, Restore data from backup file, Reset CPU memory, Format SIMATIC memory card, and Reset devices to factory default values operations. Set the maximum number of threads allowed (one to five threads). Set the timeout which is the maximum time a communications thread waits for a response (180 to 999 seconds). 44 Manual, V3.1, 10/2017, A5E AF
45 Tool operations 4.3 Multi-thread processing options Table of restrictions to multi-thread processing Multi-thread processing always used O Multi-thread processing possible, if enabled in the Communications settings (Page 99). X Fail-Safe device safety-relevant operation: Only single-thread processing is possible. SIMATIC Automation Tool operation Standard device multi-threading Scan network Identify devices Update device addresses Update PROFINET name of a device Set time in CPU to time in PG/PC Program update for CPU and HMI devices X Upload, add, replace, or delete Recipe data from a CPU Upload or delete Data Log data from a CPU Update the firmware in a device O O Put a CPU in RUN or STOP mode Backup data to a backup file, for CPU or HMI device Restore from backup file, for CPU or HMI device O X Show the diagnostic buffer of a CPU Reset CPU memory O O Retrieve Service Data from a CPU Format memory card (SIMATIC memory card inserted in a CPU) Reset to factory defaults O X Processing queues Fail-Safe device multi-threading You can select a group of standard and Fail-Safe devices in the Device table rows and then initiate group processing so the SIMATIC Automation Tool performs the same operation on all devices in the group. SIMATIC Automation Tool uses two processing queues, a priority one queue for Fail-Safe devices to process safety-relevant operations (single thread processing only) and a priority two queue that uses from 1 to 5 threads for standard devices and Fail-Safe devices that allow multi-thread processing. The SIMATIC Automation Tool processes the Fail-Safe safety-relevant operation device queue first using a single processing thread. The process performs each operation on one Fail-Safe device at a time. After the SIMATIC Automation Tool completes the Fail-Safe device safety-relevant operation queue, it processes the second queue by multi-thread processing. Some operations always use multi-threading. Others use multi-threading if enabled in the Communications settings (Page 99). O X Manual, V3.1, 10/2017, A5E AF 45
46 Tool operations 4.4 Scan a network Thread processing status When you start a group operation, the SIMATIC Automation Tool displays a progress message that shows how many devices in each queue it has completed and the processing progress (% completion) for the active processing threads. 4.4 Scan a network The device table for a new SIMATIC Automation Tool project is empty. To begin work with the SIMATIC Automation Tool, you scan the communications network to fill the device table. You can also manually insert a device (Page 51). Scan your network To scan the network, select the «Operations>Scan Network>Scan Entire Network» menu command. Alternatively, you can click the Scan button on the toolbar and select «Scan Entire Network» from the button drop-down menu. Note SIMATIC Automation Tool is an offline tool Note that the SIMATIC Automation Tool does not update device data continuously. The SIMATIC Automation Tool displays device information at the point of time that you scanned or refreshed your communications network or at the point of time when you inserted devices. The TIA Portal or Web server, for example, could change device data since your last scan. Before performing device operations, scan the network or refresh the devices for which you want to perform device operations. 46 Manual, V3.1, 10/2017, A5E AF
47 Tool operations 4.4 Scan a network Device table conventions Row icons help you identify the device table rows: Device is unknown or not fully supported. The row’s address text is grayed. PROFINET device PROFINET Fail-Safe device PROFINET HMI device PROFINET Fail-Safe HMI device Folder containing PROFINET master devices Folder containing PROFIBUS master devices Folder containing PROFINET AS-i master devices Folder containing Data Log or Recipe data Data Log data Recipe data Duplicate IP addresses and PROFINET station names appear in red text. Standard device identity problem Fail-Safe device identity problem Note TIA Portal online connections to devices If a device has an online connection in the TIA Portal, the SIMATIC Automation Tool cannot read information from the device. The device table displays the icon for unknown device and reports one of the following messages in the Event Log: SIMATIC Automation Tool does not support this device. Could not establish a connection to the device. To be able to read the device, go offline in the TIA Portal. Click the check box next to a device to select it. The SIMATIC Automation Tool displays device text in black for devices you have not selected and in bold black when you have selected them. You can enter text in cells with a light gray background. You cannot enter text in cells with a dark gray background. A dark gray cell indicates that the SIMATIC Automation Tool does not support the operation for that device type/firmware version. Manual, V3.1, 10/2017, A5E AF 47
48 Tool operations 4.4 Scan a network Understanding the device table Note Scan your network again to resolve device identity problems A device identity problem can occur, for example, if the TIA Portal modifies the device program or configuration since the last time the SIMATIC Automation Tool completed a network scan. A device with an identity problem continues to fail on all operations and on a refresh command. You must scan the network to resolve the device identity problem. Fail-Safe devices When you change a device’s identity or safety program status from the SIMATIC Automation Tool, the tool makes the changes without a new network scan. For example, if you download a new firmware version from the SIMATIC Automation Tool, the SIMATIC Automation Tool updates the device variables to the new values. The SIMATIC Automation Tool is an approved tool for operating on safety devices and is able to handle safety state changes. If you have a Fail-Safe CPU in your network, but you have not downloaded a safety program (Page 110) to it, the device row cells appear in the color gray. If you have downloaded a safety program to a Fail-Safe CPU, the information fields for the device appear in yellow. The following user-entry fields for Fail-Safe CPUs that have a safety program initially appear in gray. The SIMATIC Automation Tool displays these user-entry fields in yellow after you enter valid values. Password in CPU Program Update Folder Password in Program File Backup File Example: Devices connected through CPUs and IP address routers After you enter valid IP addresses in the device table on the IP address tab, you can use the «Operations>Update>IP Address» menu command to transfer the address assignments into selected directly connected devices. You can also click the Update button and choose the «IP Address» command from the button drop-down menu When supported network devices have valid IP addresses, a network scan shows devices located behind CPUs and IP address routers. 48 Manual, V3.1, 10/2017, A5E AF
49 Tool operations 4.4 Scan a network Directly connected devices (including connection through an Ethernet switch) A directly connected device can use all MAC address operations (with IP address unconfigured or configured) and all IP addressed operations (with IP address configured). Example initial scan result: Scan rules for existing table entries If a MAC address already exists in the table, then scanning the network updates the IP address, Subnet, and Gateway fields for that device table row. The data in all other fields remains the same. If a MAC address is new, then the SIMATIC Automation Tool creates a new row with the MAC address, IP Address, Subnet, and Gateway. All other fields are empty. PROFINET I/O PROFINET I/O devices can appear twice in the device table. The device is shown once on a top level row, where direct connection with the tool allows all supported SIMATIC Automation Tool operations. The device is also shown in a lower level row behind a CPU (with valid IP address and hardware configuration), where an indirect tool connection restricts the device row to firmware update only. The two device table rows result from the two different connection paths that are possible on the Ethernet network. Expand the device rows and show local modules, decentralized I/O devices, HMI panels, and CPU files (Recipes and Data Logs). Click the expand icon to expand a device row. Use the right-click shortcut menu or Edit menu to expand/collapse all levels. Manual, V3.1, 10/2017, A5E AF 49
50 Tool operations 4.4 Scan a network Only the firmware update operation is possible for indirectly connected devices. Devices on the lower levels represent devices and CPU data files that are indirectly connected to the SIMATIC Automation Tool through a directly connected CPU. A valid IP address and hardware configuration is necessary in a CPU before devices connecting through that CPU are visible in the device table. Devices on the third and fourth levels can represent decentralized I/O devices (PROFINET and PROFIBUS devices). An IP configuration is necessary in a level two decentralized I/O controller, before the decentralized I/O devices (for example, head module and I/O modules) are visible in the device table. Password identification If the device is password-protected (Page 37) at any protection level, then the SIMATIC Automation Tool enables the password field. Refreshing device table data The SIMATIC Automation Tool refreshes device table row data in the following situations: On a network scan After an operation completes When you refresh one or more devices To refresh device table data, choose one of these methods: Select «Scan Entire Network» from either the toolbar button «Operations > Scan Network» menu to refresh all devices. drop down menu or the Select devices and select «Refresh Status of All Selected Devices» from either the toolbar button drop down menu or the «Operations > Scan Network» menu. Select the Edit>Refresh menu command or right-click a device row and select Refresh from the shortcut menu. Then choose one of the following options from the Refresh menu command: Device All Selected Devices F5 All Devices Press the F5 key to refresh «All Selected Devices» The SIMATIC Automation Tool refreshes the device data that it reads from the devices and retains all user-entered data fields. If you refresh devices that are no longer present on the network, the SIMATIC Automation Tool displays the device row data in italics. See also Event Log settings (Page 105) General settings (Page 98) 50 Manual, V3.1, 10/2017, A5E AF
51 Tool operations 4.5 Inserting a device 4.5 Inserting a device You can insert a device into the device table. You can only add a device that has a unique MAC address and unique IP address from any other devices in the device table. To insert a device, follow these steps: 1. Select the «Insert > Device» menu command from either the Edit menu or the device table right-click shortcut menu. 2. From the «Insert Device» dialog, enter either an IP address or MAC address for the device. The address you enter must not correspond to the address for an existing device. The SIMATIC Automation Tool rejects an attempt to insert a device that does not have a unique address and generates an event log message. When you enter a unique IP address or unique MAC address, the SIMATIC Automation Tool attempts to communicate with the address you provided. If communication is successful, the SIMATIC Automation Tool inserts the device into the device table. If communication is not successful, the SIMATIC Automation Tool informs you that the device does not exist on the network. If the device is behind a router, the SIMATIC Automation Tool displays the device name in blue. 4.6 Update IP, subnet, and gateway addresses Change IP addresses To update the IP address for a device, follow these steps: 1. Click the «Set IP Address» tab. 2. Select one or more devices to include in the operation. You can use the Devices check box at the top of the device table to select or deselect all devices. Alternatively, you can use the right-click shortcut menu or the «Edit > Select» menu command to access the «Select All» and «Deselect All» commands. 3. Enter address changes in the «New IP Address», «New Subnet», and «New Gateway» columns. Note that the device table shows the communication interface, such as «X1». You do not, however, enter the communication interface when you enter the New IP Address. If you enter invalid syntax, the SIMATIC Automation Tool displays the field in red text. 4. Select Update from the Operations menu or click the Update button on the toolbar and select «Set IP address» from the button drop-down menu. The Update operation sets the IP, subnet, and gateway addresses in the selected devices. The Event log below the device table shows the results of this operation. Manual, V3.1, 10/2017, A5E AF 51
52 Tool operations 4.6 Update IP, subnet, and gateway addresses Duplicate IP addresses When two or more devices have the same IP address, the addresses appear in red text as shown in the following image. You can select devices with duplicate IP addresses, update the IP addresses and correct the network problem. Only the following operations on devices with duplicate IP addresses are possible: Delete Set IP address Set PROFINET name Identify devices No other tool operations are possible for devices that have duplicate IP addresses. Setting the IP address on unsupported devices MAC address based operations use the DCP (Discovery and Configuration Protocol). DCP is an Ethernet standard. The SIMATIC Automation Tool can use the DCP-MAC address operations Scan Entire Network, Identify, Update IP address, and Update PROFINET name for all directly connected network devices (CPUs, HMIs, decentralized I/O, and other devices). Select the unsupported device row, enter new data in the appropriate column, and update the unsupported device IP address, in the same way that you update supported devices. Unsupported devices might not accept a change based on the hardware configuration of the device. By default, the SIMATIC Automation Tool displays unsupported devices. You can disable this option in the General settings (Page 98) Note Some of the information that SIMATIC Automation Tool displays cannot be gathered from devices that are connected behind a IP router. For example, the Default Gateway address is gathered from devices using DCP. DCP is not a routable protocol and therefore information cannot be read from devices connected behind a router. In this situation, the related Device table fields are empty. 52 Manual, V3.1, 10/2017, A5E AF
53 Tool operations 4.7 Update PROFINET device names 4.7 Update PROFINET device names PROFINET name rules Valid names follow the standard DNS (Domain Name System) naming conventions. The maximum number of characters for the device name is 63. Valid characters are the lower case letters «a» through «z», the digits 0 through 9, the hyphen character (minus sign), and the period character. Invalid names The name must not have the format n.n.n.n where n is a value of 0 through 999. You cannot begin the name with the string port-nnn or the string port-nnnnnnnn, where n is a digit 0 through 9. For example, «port-123» and «port » are illegal names. A name cannot start or end with a hyphen «-» or period «.» character. Change PROFINET name Click the «Set PROFINET Name» tab. Select one or more devices to include in the operation. You can use the Devices check box at the top of the device table to select or deselect all devices. Alternatively, you can use the right-click shortcut menu or the «Edit > Select» menu command to access the «Select All» and «Deselect All» commands. 1. Enter a new PROFINET name in the «New PROFINET Name» column. 2. Select Update from the Operations menu or click the Update button on the toolbar and select «PROFINET Name» from the button drop-down menu. The Update operation sets new PROFINET names in the selected devices. If you enter an invalid PROFINET name according to the PROFINET name rules, the SIMATIC Automation Tool corrects the name to a valid name. The column «PROFINET Converted Name» shows the converted name. The Event log below the device table shows the results of this operation. Duplicate PROFINET names When two or more devices have duplicate PROFINET names, the SIMATIC Automation Tool indicates the duplicates with red text. The SIMATIC Automation Tool supports full functionality for these devices and displays all other information. Manual, V3.1, 10/2017, A5E AF 53
54 Tool operations 4.8 Set CPUs to RUN or STOP mode Setting PROFINET name on unsupported devices MAC address based operations use the DCP (Discovery and Configuration Protocol). DCP is an Ethernet standard. The SIMATIC Automation Tool can use the DCP-MAC address operations Scan Entire Network, Identify, Update IP address, and Update PROFINET name for all directly connected network devices (CPUs, HMIs, decentralized I/O, and other devices). Select the unsupported device row, enter new data in the appropriate column, and update unsupported device PROFINET names, in the same way that you update supported devices. Unsupported devices might not accept a change based on the hardware configuration of the device. By default, the SIMATIC Automation Tool displays unsupported devices. You can disable this option in the General settings (Page 98) 4.8 Set CPUs to RUN or STOP mode Change CPUs to RUN or STOP mode To change the operating mode for a device, follow these steps: 1. Select one or more devices to include in the operation. You can use the Devices check box at the top of the device table to select or deselect all devices. Alternatively, you can use the right-click shortcut menu or the «Edit > Select» menu command to access the «Select All» and «Deselect All» commands. 2. For each selected CPU, enter a password, if used, in the «Password in CPU» column of the currently open tab. 3. Set the operating mode to either RUN mode or STOP mode: Select RUN from the Operations menu or click the RUN toolbar button. A valid program must exist in the CPU before it can enter RUN mode. Select STOP from the Operations menu or click the STOP toolbar button. The SIMATIC Automation Tool sets the selected CPUs to RUN or STOP mode. The Mode and Operating state columns in the device table indicate the current CPU state. Yellow means STOP mode. Green means RUN mode. RED means CPU fault. The Event log below the device table shows the results of the operation. 54 Manual, V3.1, 10/2017, A5E AF
55 Tool operations 4.9 Identify devices 4.9 Identify devices Locate a device by flashing an LED or HMI display The Identify operation helps you physically locate devices in the device table. You can use the Identify operation in RUN mode and STOP mode. To identify devices, follow these steps: 1. Select one or more devices to include in the operation. You can use the Devices check box at the top of the device table to select or deselect all devices. Alternatively, you can use the right-click shortcut menu or the «Edit > Select» menu command to access the «Select All» and «Deselect All» commands. 2. Select the «Operations > Identify» menu command or click the toolbar button for identifying selected devices. Selected CPU devices flash their LEDs to show their location. Selected HMI devices perform a screen flash. Flashing continues until you click the cancel button. Identifying unsupported devices (flashing LED / HMI screen) MAC address based operations use the DCP (Discovery and Configuration Protocol). DCP is an Ethernet standard. The SIMATIC Automation Tool can use the DCP-MAC address operations Scan Entire Network, Identify, Update IP address, and Update PROFINET name for all directly connected network devices (supported PROFINET devices, unsupported PROFINET devices, and unsupported non-siemens Ethernet devices). Select the unsupported device row, and identify an unsupported device, in the same way that you identify supported devices. Unsupported devices might not flash LEDs based on the hardware configuration of the device. By default, the SIMATIC Automation Tool displays unsupported devices. You can disable this option in the General settings (Page 98) Manual, V3.1, 10/2017, A5E AF 55
56 Tool operations 4.10 Update device programs from the SIMATIC Automation Tool 4.10 Update device programs from the SIMATIC Automation Tool Before you can transfer a program to a CPU using the SIMATIC Automation Tool, you must have access to the program on one of the following forms of media: SIMATIC memory card USB flash drive hard drive of your PG/PC Preparing a CPU program for use with the SIMATIC Automation Tool To transfer a TIA Portal CPU project to a SIMATIC memory card, follow these steps: 1. Insert a SIMATIC memory card into the card reader for your PG/PC 2. From STEP 7, select the CPU in the Project tree 3. Select the «Project > Card Reader/USB memory > Write to memory card» menu command. 4. Select your memory card from the dialog. STEP 7 saves a SIMATIC.S7S folder on your SIMATIC memory card that contains your CPU project. You can also copy the STEP 7 project to the memory card by dragging the project to the memory card in the project tree. 56 Manual, V3.1, 10/2017, A5E AF
57 Tool operations 4.10 Update device programs from the SIMATIC Automation Tool Refer to the STEP 7 Information System (online help) for additional information. After the TIA portal transfers program data to a storage device, you can use Windows file Explorer to transfer the program to the folder that is used by the SIMATIC Automation Tool. Copy the «SIMATIC.S7S» folder for each CPU program Follow these steps to make a CPU program accessible to the SIMATIC Automation Tool 1. Create subfolders under the Program Update folder (Page 102). Create one folder for each program and create a folder name that identifies the program. The folder names that you create will appear in the SIMATIC Automation Tool program drop-down list. 2. Use Windows Explorer to copy the «SIMATIC.S7S» folder (including all subfolders and files) to each subfolder for each program. You can put a TIA portal program (a «SIMATIC.S7S» folder) in a zip file archive and extract it to your subfolder location. Note that you update recipes in a separate recipe operation (Page 64). See the «Example CPU program update» section later in this topic. Note TIA portal program data The program data is protected. You cannot discover details like the project name or target CPU of a TIA portal program from the data that is stored in a SIMATIC.S7S folder. You cannot identify one program’s SIMATIC.S7S folder from another program’s SIMATIC.S7S folder. You must create and name subfolders under the SIMATIC Automation Tool program update folder (Page 102) that identify a program’s function or target CPU. Copy a program’s SIMATIC.S7S folder into the subfolder that you named. The subfolder names that you create appear in the SIMATIC Automation Tool «Program» column drop-down list and provide the path to the correct SIMATIC.S7S folder. Manual, V3.1, 10/2017, A5E AF 57
58 Tool operations 4.10 Update device programs from the SIMATIC Automation Tool Preparing an HMI operating system and runtime software for use with the SIMATIC Automation Tool HMI devices from Version 14 and higher support saving the operating system and runtime from STEP 7. To copy the operating system and runtime files for an HMI to a SIMATIC memory card, follow these steps: 1. Insert a SIMATIC memory card into the card reader for your PG/PC. 2. Expand «Card Reader/USB memory» in the Project tree to show the drive corresponding to your card reader. 3. Select your HMI in the Project tree and drag it to the drive letter of your card reader. STEP 7 saves a SIMATIC.HMI folder on your SIMATIC memory card that contains your HMI runtime and HMI operating system. HMI updates include the operating system and runtime data. You do not have the option to select a partial update. After the TIA portal transfers the SIMATIC.HMI folder to a storage device, use the Windows file explorer to make the SIMATIC.HMI folder accessible to the SIMATIC Automation Tool: Create a subfolder for the HMI program in the Program Update (Page 102) folder. Copy the SIMATIC.HMI folder to the subfolder. 58 Manual, V3.1, 10/2017, A5E AF
59 Tool operations 4.10 Update device programs from the SIMATIC Automation Tool Update CPU programs or HMI operating system and runtime software If you have a chain communication topology and the Communications settings (Page 99) enable multi-threading, be aware of the risk of communication disruption with this operation. Note Fail-Safe devices If the Fail-Safe CPU is protected, you must enter the safety F-CPU password in the «Password in CPU» column to update the program in a Fail-Safe device. You must confirm an additional prompt for program updates to F-CPUs and reselect your device under the following conditions: You are updating a safety program (Page 110) with another safety program You are updating a safety program with a standard program You are loading a safety program for the first time You are updating a standard program that requires the CPU password for access level «Full access incl. fail-safe (no protection)». The SIMATIC Automation Tool places «Program Update» requests for Fail-Safe devices in the F-CPU safety-relevant operation queue. The SIMATIC Automation Tool uses only singlethread sequential processing for the safety-relevant operation queue. The destination device for a safety program must be a Fail-Safe CPU. WARNING Verify that the device is not actively running a process before updating the program Installing a new program causes CPUs to go to STOP mode, which could affect the operation of an online process or machine. Unexpected operation of a process or machine could result in death or injury to personnel and/or property damage. After you have stored programs in the program update folder, you can use the SIMATIC Automation Tool to load new programs in one or more devices. To perform a program update, follow these steps: 1. Click the «Program Update» tab. 2. Select one or more devices to include in the operation. You can use the Devices check box at the top of the device table to select or deselect all devices. Alternatively, you can use the right-click shortcut menu or the «Edit > Select» menu command to access the «Select All» and «Deselect All» commands. Manual, V3.1, 10/2017, A5E AF 59
60 Tool operations 4.10 Update device programs from the SIMATIC Automation Tool 3. For each selected device, use the «Program Update Folder» column drop-down list to select a folder name. The drop-down list shows the folders that you created in the program update path. You can also use the browse button and navigate to the folder where you have stored a program on your PG/PC. When you select a program, the SIMATIC Automation Tool adds it to the drop-down list. If the selected file has the same name as one of the files already listed, the SIMATIC Automation Tool adds a number to the new file name to make the names unique. To help you identify files, when you hover over the program name in the Program Update field, a tooltip displays the following information about the device and selected program: If the program file does not contain an IP address, the tooltip displays «Set directly at device» for all IP address fields. 4. Enter passwords, if used, in the «Password in CPU» and «Password in Program File» columns. Program update is a safety-relevant operation. If the device is a Fail-Safe device, you must enter the safety F-CPU password. 5. Select the «Operations > Update > Program Update» menu command to start the operation. Alternatively select the Update toolbar button and select «Program Update» from the button drop-down menu. The Event Log below the device table shows the results of this operation. Program validation The SIMATIC Automation Tool verifies the program data, before updating the program in a CPU. If there is an error in the program data, then a red «X» icon is displayed in the «Program Update Folder» cell. Additional error information is available in a tooltip, when you hover over the cell. 60 Manual, V3.1, 10/2017, A5E AF
61 Tool operations 4.10 Update device programs from the SIMATIC Automation Tool Password handling after Program Update operation A program file might have a password, which might be different from the existing CPU password. When a program file has a password, you must enter the program password in the «Password in Program File» cell to perform a program update. The program password becomes the CPU password after the Program Update operation completes. After a successful Program Update operation, the SIMATIC Automation Tool automatically copies the Password in Program File to the CPU password field and attempts a connection using the new password. The SIMATIC Automation Tool then clears the Password in Program File field and the Program Update Folder field. If the password you enter in the «Password in Program File» column is not the password configured for the project in the TIA Portal, then the Event Log shows a warning after the operation completes. In this case the CPU password shows a red X icon that indicates an invalid password. F-signature validation A TIA Portal project that contains a safety program has an F-signature that is used to verify the data in a copied program and provides an additional level of security for safety programs. After a Program Update operation, the F-Signature in the project is compared to the F- Signature now loaded on the CPU device. A successful comparison is reported in the Event Log as: «Result of CRC comparison, online and offline collective F-signatures match» The SIMATIC Automation Tool reports an unsuccessful comparison in the Event Log as:» Result of CRC comparison, online and offline collective F-signatures do not match» In the event of an unsuccessful comparison, reset the device to factory defaults (Page 79) and reattempt the program update. WARNING Be sure you load the correct safety program. Running the wrong program on an F-CPU can affect the operation of a process or machine. Unexpected operation of a process or machine could result in death or injury to personnel and/or property damage. Do not attempt to go to RUN mode if you are not sure that you have loaded the correct safety program. Manual, V3.1, 10/2017, A5E AF 61
62 Tool operations 4.10 Update device programs from the SIMATIC Automation Tool Example: Program update If you want five different CPU programs available for Program Update, then you must create and name five folders in the Program Update folder (Page 100). Copy the entire «SIMATIC.S7S» folders to the five corresponding folders. In this example, the folder names «Program1», «Program2», «Program3», «Program4», and «Program5» identify the available programs. You can use any folder name you want. The folder name could refer to a program function, or CPU location. The following image shows the Windows Explorer view of the subfolders under the Programs folder. You copy the corresponding SIMATIC.S7S program folders to these folders. The following image shows the SIMATIC Automation Tool Program Update tab with the example folder names in the «New Program Update» column drop-down list. You must use the drop-down list in the «New Program Update» column to assign which program to use. If you select more than one CPU row, then you must repeat the process and assign the correct program for each CPU that you selected. Select the «Operations > Update > Program Update» menu command to start the program update. Alternatively, click the toolbar Update button, and select «Program Update» from the button drop-down menu. The process is similar for HMI data. The folder name within a project folder is «SIMATIC.HMI» instead of «SIMATIC.S7S». The procedure is the same. 62 Manual, V3.1, 10/2017, A5E AF
63 Tool operations 4.11 Upload, add, replace, and delete Recipes in CPUs CPU program update rules The SIMATIC Automation Tool supports the program update operation for standard CPUs and Fail-Safe CPUs. Program update rules: The firmware version of the CPU hardware must be greater than or equal to the firmware version in the project that you want to load. You can work around this restriction by updating the firmware in the CPU, if possible. For the S7-1200, S7-1500, and ET 200SP (S7-1500) CPUs, the SIMATIC Automation Tool supports the program update operation, if the project’s assigned CPU firmware version is supported as shown in the following tables. Program update support tables Program update is possible where is displayed. Program update is not possible where an empty cell is displayed. S ET 200SP CPU Target CPU firmware version CPU firmware version configured in project for CPU update Use the TIA Portal to change an S project’s CPU version to a supported version for a successful program update. S CPU firmware version configured in project for CPU update Target CPU firmware 2.0 version Manual, V3.1, 10/2017, A5E AF 63
64 Tool operations 4.11 Upload, add, replace, and delete Recipes in CPUs 4.11 Upload, add, replace, and delete Recipes in CPUs Recipe operations work for CPUs that have recipes in external load memory (SIMATIC memory card). The CPU can be in either RUN or STOP mode. Recipe data is formatted as.csv (comma-separated values) text files. You can add or replace multiple recipes in a single operation if the recipes are all on different CPUs. You cannot add or replace more than one recipe into one CPU in a single operation. You can select multiple recipes for upload or deletion in one CPU in a single operation. When you select a recipe file or recipe folder, the SIMATIC Automation Tool displays the device table row in bold text. For Recipe downloads, click the Recipe tab and select a CPU’s Recipe folder row. The SIMATIC Automation Tool creates a unique folder name for each CPU to store uploaded recipe files on your PG/PC. The folder name includes the CPU name combined with the MAC address. If you select and upload the same recipe file twice, the SIMATIC Automation Tool appends a number to the filename to make all filenames unique. The SIMATIC Automation Tool must have Read access to upload recipe files. To delete, add, or replace recipe files, the SIMATIC Automation Tool must have Full access (read and write) authorization. You might have to enter a password to successfully perform a delete or add/replace operation. If you do not enter a password, or if the password does not authorize the CPU write access, the operation for that CPU fails and puts an error message in the Event Log. Toolbar actions From the drop-down menu of the «File Operations» toolbar button choices:, you have the following Upload Recipes Copies selected recipe files from a CPU to the recipe folder (Page 104) of your PG/PC. Add/Replace Recipe (available for selection when you are displaying the Load Recipe tab) Copies selected recipe files from your PG/PC to a CPU. Delete Recipes Deletes selected recipe files from a CPU. 64 Manual, V3.1, 10/2017, A5E AF
65 Tool operations 4.11 Upload, add, replace, and delete Recipes in CPUs Uploading or deleting recipe files To upload or delete recipe files from a CPU, follow these steps: 1. Click the «Load Recipe» tab on the Device table. 2. Expand a CPU device and make a recipe folder visible 3. Expand a recipe folder and select the recipe files to include in the operation. 4. For each selected CPU, enter a password, if used, in the «Password in CPU» column. 5. Select the «Operations > File Operations» menu command or click the «File Operations» toolbar button: 6. Select either «Upload Recipes» or «Delete Recipe» from the File Operations menu. The Event Log below the device table shows the results of the operation. Adding or replacing (downloading) recipe files To add or replace CPU recipe files from files on your PG/PC, follow these steps: 1. Copy Recipe data.csv files that you want to add to or replace in a CPU into the Recipes folder. Recipes folder. (Page 104) 2. Click the «Load Recipe» tab in the device table. 3. Expand a CPU device and make a recipe folder visible. 4. Select the recipe folder that you want to load. Manual, V3.1, 10/2017, A5E AF 65
66 Tool operations 4.11 Upload, add, replace, and delete Recipes in CPUs 5. For each recipe folder that you selected, click the «Add/Replace Recipe» column dropdown list and select a recipe file name. The drop-down list shows the names of.csv files that exist in the directory path assigned in the Recipes section of the «Options > Settings» dialog. You can also use the browse button and navigate to the folder where you store recipe files on your PG/PC. The SIMATIC Automation Tool adds the file that you browsed to and selected to the drop-down list. If the selected file has the same name as one of the files already listed, the SIMATIC Automation Tool adds a number to the new file name to make the names unique. To help you identify files, a tooltip displays the entire path and filename. 6. Select the «Operations > File Operations» menu command or click the «File Operations» toolbar button: 7. Select «Add/Replace Recipe» from the File Operations menu. If the recipe existed, the SIMATIC Automation Tool replaces it. If the recipe did not exist, the SIMATIC Automation Tool adds it. The Event Log below the device table shows the results of this operation. After a successful Recipe download operation, the recipe file path is deleted. WARNING Security note Operating a process or machine with compromised data could affect the operation of an online process or machine. Unexpected operation of a process or machine could result in death or injury to personnel and/or property damage. Make sure that you protect Recipe.csv files from being compromised through the use of different methods, for example, by limiting network access and using firewalls. 66 Manual, V3.1, 10/2017, A5E AF
67 Tool operations 4.12 Upload and delete Data Logs in CPUs 4.12 Upload and delete Data Logs in CPUs The Data Log upload operation works for CPUs that have Data Logs in external load memory (SIMATIC memory card). The CPU can be in either RUN or STOP mode. The Data Log delete operation only works for CPUs in STOP mode. If you select to delete one or more Data Logs (from one or more CPUs) and any of the CPUs are found to be in RUN mode, then you are prompted that all CPUs must be placed in STOP mode before attempting the operation. If you choose not to switch to STOP mode, the entire delete operation is stopped. Data Logs are uploaded as.csv (comma-separated values) text files. You can select multiple data files from one or more CPUs and process all the selected files in a single operation. SIMATIC Automation Tool creates a unique folder name for each CPU, to store uploaded Data Log files on your PG/PC. A folder name is created from the CPU name combined with the MAC address. If you select and upload the same Data Log file twice, a number is appended to the filename, to make all filenames unique. SIMATIC Automation Tool must have Read access to upload Data Log files and Full access (read and write) authorization to delete Data Log files from a CPU. Therefore, you may have to enter a password to successfully perform a delete operation. If you do not enter a password, or if the password does not authorize the CPU write access, the delete operation(s) for that CPU will fail and an error message is put in the operations log. Data Log actions The File Operations toolbar button commands: and File Operations menu provide the following menu Upload Data Logs: Uploads a copy of selected Data Log file(s) from the CPU to PG/PC. The SIMATIC Automation Tool copies the files to the directory assigned in the Data Logs settings (Page 104). Delete Data Logs: Deletes selected Data Log files that are stored in a CPU. Manual, V3.1, 10/2017, A5E AF 67
68 Tool operations 4.12 Upload and delete Data Logs in CPUs Upload or Delete Data Log files To upload or delete data log files, follow these steps: 1. Expand a CPU row and make any Data Log folders visible. 2. Expand a Data Log folder and select Data Log files: 3. For each CPU, enter a password, if used, in the «Password in CPU» column of the currently open tab. 4. Select the «Operations > File Operations > Upload Data Logs» menu command or the «Operations > File Operations > Delete Data Logs» menu command. Alternatively, click the «File Operations» toolbar button and select the «Upload Data Logs» or «Delete Data Logs» command from the button drop-down menu. The Event log below the device table shows the results of your operation. WARNING Security note Operating a process or machine with compromised data could affect the operation of an online process or machine. Unexpected operation of a process or machine could result in death or injury to personnel and/or property damage. Make sure that you protect Data Log.csv files from being compromised through the use of different methods, for example, by limiting network access and using firewalls. 68 Manual, V3.1, 10/2017, A5E AF
69 Tool operations 4.13 Install new firmware in devices 4.13 Install new firmware in devices TIA Portal firmware update You can use a SIMATIC memory card to install firmware updates in devices. Alternative firmware update methods include using the Module Information page of a CPU’s built-in Web server, or using the TIA portal online and diagnostic functions. Note HMI operating system, and runtime software updates You must use the SIMATIC Automation Tool Program Update operation (Page 56) to update the HMI operating system, and runtime software. You do not have the option to select a partial update. The Program Update operation updates all data components as necessary, for a consistent download. SIMATIC Automation Tool firmware update The SIMATIC Automation Tool can perform firmware updates on a group of devices. You can use the new format single.upd file and the older (classic) format which uses three or more separate.upd files. If you have a chain communication topology and the Communications settings (Page 99) enable multi-threading, be aware of the risk of communication disruption with this operation. Note S CM communication modules must be configured before a firmware update You can use the SIMATIC Automation Tool to update the firmware in unconfigured and configured SM and CM modules, except for left-side S CM devices. For an S CM module, you must configure the CM module in the TIA Portal and download the configuration to the module before you can use the SIMATIC Automation Tool to update the CM firmware. Note CPU firmware downgrade You can use the SIMATIC Automation Tool to downgrade CPU firmware (load a previous firmware version), but the IP address and program might be erased. In this case, the IP address is reset to and a new network scan is required to communicate with this device. You must set the IP address to restore your previous network address. You cannot downgrade the firmware for some devices. Check your device documentation. Note that programs for one CPU firmware version might not run on another firmware version. The CPU cannot go to RUN mode if the program is incompatible with the firmware version. Manual, V3.1, 10/2017, A5E AF 69
70 Tool operations 4.13 Install new firmware in devices Preparing firmware update files for use with the SIMATIC Automation Tool You can obtain firmware update software from the customer support ( web site. Another option is to select a device row and then select «Check for Firmware Updates» from either the Tools menu or the Tools toolbar icon. The SIMATIC Automation Tool launches the device’s customer support web page. The Siemens support web page selection is controlled by the article number displayed in a device table row. For example, a «Check for updates» command on article number 6ES HG31-0XB0 links to the corresponding CPU 1215C web support page ( dcdcrly-14di10do2ai2ao?pid=79072&dtp=download&mlfb=6es7215-1hg31-0xb0&lc=en-ww) For a CPU example, the firmware update file named 6ES AE40-0XB0_V exe is only for the CPU 1211C DC/DC/DC model. If you use the.upd file within this package for any other S CPU model, the update process will fail. When you execute the update file and extract the files, you see the following set of files and folders. file: S7-JOB.SYS folder: FWUPDATE.SYS contains the.upd file. file: 6ES AE40-0XB0 V upd (.upd file used by the SIMATIC Automation Tool) For an I/O module example, the firmware update file named 232-4HD32-0XB0_V203.exe is only for the SM 1232 ANALOG OUTPUT 4AO module. The self-extracting.exe file contains the file 6ES HD32-0XB0 V _ upd that is used by the SIMATIC Automation Tool. Note New format firmware update files The self-extracting.exe update package name must refer to the article number of the device that you want to update. The extracted.upd file name must match the article number of the device and the firmware version that you want to load. Note Old format firmware update files The self-extracting.exe update package name must refer to the article number of the device that you want to update. Contains three or more files depending on the firmware size. Create a folder with any name in the Firmware Update folder (Page 101). You can name the folder with the article number and version number so it will be easier to identify, but you can use any name. The SIMATIC Automation Tool parses all firmware files at startup to confirm exact firmware version numbers. 70 Manual, V3.1, 10/2017, A5E AF
71 Tool operations 4.13 Install new firmware in devices Copy.upd files to the firmware update folder The new format firmware update single.upd files have the target module model and version numbers in their file names. You can copy multiple.upd files to a single firmware folder and then identify the target module by the.upd file name. Copy all the.upd files you need to the Firmware Update folder (Page 101). WARNING Verify that the CPU is not actively running a process before installing firmware updates Installing a firmware update for a CPU or module causes the CPU to go to STOP mode, which could affect the operation of an online process or machine. Unexpected operation of a process or machine could result in death or injury to personnel and/or property damage. Perform firmware updates for CPUs and modules After.upd files are present in the firmware update folder, you can use the SIMATIC Automation Tool to update device firmware. Follow these steps to perform the update: 1. Click the «Firmware Update» tab. 2. Select one or more devices to include in the operation. You can use the Devices check box at the top of the device table to select or deselect all devices. Alternatively, you can use the right-click shortcut menu or the «Edit > Select» menu command to access the «Select All» and «Deselect All» commands. 3. For each device row that you selected, click the «New Firmware Version» column dropdown list and select a firmware version for either a CPU or module. The drop-down list shows the names of the.upd files that you copied to the firmware update folder (Page 101). If new firmware versions (.upd files) are available in the firmware update folder, then these files are available from the «New Firmware Version» drop-down list. You can also use the browse button and navigate to a folder on your PG/PC that contains firmware update files. Select a file to add it to the drop-down list. If the selected file has the same name as one of the files already listed, the SIMATIC Automation Tool adds a number to the new file to make the names unique. To help you identify files, a tooltip displays the entire path and filename. 4. For each selected device, enter a password, if used, in the «Password in CPU» column. 5. Select the «Operations > Update > Firmware Update» menu command to start the operation. Alternatively, click the Update toolbar button and the «Firmware Update» command from the button drop-down menu. The Event Log below the device table shows the results of the operation. After a successful Firmware update operation, the SIMATIC Automation Tool clears the «New Firmware Version» field. Manual, V3.1, 10/2017, A5E AF 71
72 Tool operations 4.13 Install new firmware in devices Fail-Safe device CPU passwords for firmware update For firmware versions earlier than S V4.2 and S V2.0, a password protected Fail-Safe CPU requires the safety F-CPU password (top level 5) for the firmware update operation. Since a firmware update is not a safety-relevant operation, the password level requirement was relaxed. Later versions of F-CPU firmware require only read-write access (level 4 Full access). The SIMATIC Automation Tool does not check the legitimization level for different firmware versions. The operation is initiated and the device will reject a password based on the implementation in the firmware and an Event Log error is provided as follows: «The password entered is not sufficient to complete the operation.» S V4.2 or later and S V2.0 or later require only read-write «Full access (no protection)». If the safety F-CPU password is used then this also gives you read-write access, so the operation will always succeed if the Fail-Safe password is entered. Timeout error message due to slow communication with.upd file storage device If you see the following error message box, then more than ten seconds has elapsed and the SIMATIC Automation Tool has not completed processing all the.upd files in the firmware storage folder. The time required to open and scan all the.upd files depends on data access time and the number of.upd files in the folder. This timeout error can occur when communication with a remote storage device is too slow. To prevent this problem, assign a faster firmware data storage path from the Firmware Update section of the «Options > Settings» menu command dialog. Copy the.upd files you need to a faster local storage device and try the operation again. 72 Manual, V3.1, 10/2017, A5E AF
73 Tool operations 4.13 Install new firmware in devices Example firmware update This example shows how to update the firmware for a single CPU. To perform the firmware update, follow these steps: 1. Open the drop-down list of available versions from the «New Firmware Version» column. The drop-down list shows all of the available firmware update files in the firmware update folder (Page 101). 2. Select the firmware update version to use. (If you had selected more than one device, then you would choose an update file for each selected device.) 3. Select the «Operations > Update > Firmware Update» menu command to start the operation. Alternatively, click the Update toolbar button followed by the Firmware Update menu command from the button drop-down menu. Note You cannot update the firmware of some S modules with the SIMATIC Automation Tool If you see the error message «The device requires both the CPU and module to support firmware update. This device can only be updated via SD card», then you cannot update the module firmware with the SIMATIC Automation Tool. Manual, V3.1, 10/2017, A5E AF 73
74 Tool operations 4.14 Backup and Restore CPU or HMI data 4.14 Backup and Restore CPU or HMI data Backing up a device The «Backup Device to File» command creates new data backup files and copies the files to the backup and restore folder (Page 103). You can use these files in the SIMATIC Automation Tool Restore Device operation. You can start the backup operation from any tab selection. To create a backup file, follow these steps: 1. Select one or more devices to include in the operation. You can use the «Devices» check box at the top of the device table to select or deselect all devices. Alternatively, you can use the right-click shortcut menu or the «Edit > Select» menu command to access the «Select All» and «Deselect All» commands. 2. Select the «Backup/Restore > Backup Device to File» menu command from the Operations menu. Alternatively, click the Backup/Restore toolbar button and select «Backup Device to File» from the button drop-down menu. The Event Log below the device table shows the results of the operation. For a successful operation, the SIMATIC Automation Tool creates a backup file name for S7 and HMI devices. The file name combines the project name, MAC address, and.s7pbkp. The SIMATIC Automation Tool copies the files to the backup and restore folder (Page 103). 74 Manual, V3.1, 10/2017, A5E AF
75 Tool operations 4.14 Backup and Restore CPU or HMI data Restoring devices from backup files You use the «Restore Device from File» command to restore backup files to the corresponding devices. S7 and HMI backup files that you created with the «Backup Device to File» command have the extension name «s7pbkp». You can restore files from the backup and restore folder (Page 103) or browse to another location. If you have a chain communication topology and the Communications settings (Page 99) enable multi-threading, be aware of the risk of communication disruption with this operation. Note Fail-Safe devices If a Fail-Safe CPU is protected, you must enter the safety F-CPU password in the «Password in CPU» column to restore a Fail-Safe device from a backup file. You must confirm an additional prompt and reselect your device if the program in an F-CPU is a safety program (Page 110). The SIMATIC Automation Tool places «Restore from backup» requests for Fail-Safe devices in the F-CPU safety-relevant operation queue. The SIMATIC Automation Tool uses only single-thread sequential processing for the safety-relevant operation queue. The destination device for a safety program must be a Fail-Safe CPU. WARNING Verify that the device is not actively running a process before restoring a device from a backup file Restoring a device causes the CPU to go to STOP mode, which could affect the operation of an online process or machine. Unexpected operation of a process or machine could result in death or injury to personnel and/or property damage. To restore selected devices from a backup file, follow these steps: 1. Click the «Restore from Backup» tab in the device table. 2. Select one or more devices to include in the operation. You can use the Devices check box at the top of the device table to select or deselect all devices. Alternatively, you can use the right-click shortcut menu or the «Edit > Select» menu command to access the «Select All» and «Deselect All» commands. 3. For each device, select a backup file name from the «Backup File» drop-down list. The drop-down list shows the names of the.s7pbkp files that exist in the backup and restore folder (Page 103). You can also use the browse button and navigate to the folder on your PG/PC that contains backup files. Select a file to add it to the drop-down list. If the file that you selected has the same name as an existing file, the SIMATIC Automation Tool adds a number to the new file name to make the names unique. For valid files, a tooltip displays the path and filename. You also see a green check mark by the file name. For invalid files, the tooltip displays the file error, which the Event Log also displays. You see a red X by the file name. Manual, V3.1, 10/2017, A5E AF 75
76 Tool operations 4.14 Backup and Restore CPU or HMI data 4. Enter passwords, if used, in the «Password in CPU» and «Password in Backup File» columns. Restore from Backup is a safety-relevant operation and the safety F-CPU password is required for a password protected Fail-Safe device. 5. Select the «Operations > Backup/Restore > Restore Device from File» menu command to start the operation. Alternatively, click the Backup/Restore toolbar button and select «Restore Device from File» from the button drop-down menu. Backup file validation Before starting the restore operation, the SIMATIC Automation Tool performs limited data checks on the backup file data. The file extension name and header data are validated You cannot restore from a backup file that contains a safety program when the target device is not a Fail-Safe CPU. If a backup file is not valid, the SIMATIC Automation Tool displays a red «X» in the «Backup File» field. Additional error information is available in a tooltip when you hover over the cell. Password handling after the restore operation If a CPU is password-protected, then you must supply a password for the Restore from Backup operation to complete successfully. After you restore a backup file to a CPU, the new file might have a password. The password you restored might be different from the previous password, if the CPU had a password. You must therefore enter a second password in the «Password in Backup File» column. The second password becomes the CPU password after the restore operation completes. After a successful Restore operation, the SIMATIC Automation Tool automatically copies the second password (the «Password in Backup File» that you entered) to the CPU password field and attempts a connection using the new password. The SIMATIC Automation Tool then deletes the second password and backup file path. Before you restore a backup file to a CPU: After you restore a backup file to a CPU: If the password that you entered in the «Password in Backup File» column is incorrect and is not actually a password configured in the restored CPU data, then the Event Log shows a warning after the operation completes. In this case the CPU password shows a red X icon to indicate an invalid password. 76 Manual, V3.1, 10/2017, A5E AF
77 Tool operations 4.14 Backup and Restore CPU or HMI data F-signature validation A TIA Portal project that contains a safety program has an F-signature. The SIMATIC Automation Tool uses the F-signature to verify the data in a program file, which provides an additional level of security for safety programs. After a Restore from backup file operation, the SIMATIC Automation Tool compares the F-Signature in the project file to the F-Signature that is now in the CPU device program. The Event Log reports a successful comparison is reported as: «Result of CRC comparison, online and offline collective F-signatures match» The SIMATIC Automation Tool reports an unsuccessful comparison in the Event Log as:» Result of CRC comparison, online and offline collective F-signatures do not match» In the event of an unsuccessful comparison, reset the device to factory defaults (Page 79) and reattempt the program update. Do not attempt to go to RUN mode if you are not sure that you have loaded the correct safety program. Restore from backup example This example shows one selected device and the selection of one backup file for the «Backup File» field. For multiple devices, you would select a backup file to restore for each device. The Event Log below the device table shows the results of this operation. Manual, V3.1, 10/2017, A5E AF 77
78 Tool operations 4.15 Reset CPU memory 4.15 Reset CPU memory Reset memory on selected CPUs To reset CPU memory on selected devices, follow these steps: 1. Select one or more devices to include in the operation. You can use the Devices check box at the top of the device table to select or deselect all devices. Alternatively, you can use the right-click shortcut menu or the «Edit > Select» menu command to access the «Select All» and «Deselect All» commands. 2. For each selected CPU, enter a password, if used, in the «Password in CPU» column. 3. Select the «Operations > Reset > Memory Reset» command to start the operation. Alternatively, click the «Reset» toolbar button and select «Memory Reset» from the button drop-down menu. 4. Click the «Continue» button on the «Memory Reset» dialog box. The SIMATIC Automation Tool performs a memory reset on the selected devices. The Event log below the device table shows the results of this operation. 78 Manual, V3.1, 10/2017, A5E AF
79 Tool operations 4.16 Reset CPUs and modules to factory default values 4.16 Reset CPUs and modules to factory default values Reset selected devices to factory default values You can reset selected devices to factory default values, except for the IP address. The device retains the existing IP address so your network IP assignments are preserved. If you have a chain communication topology and the Communications settings (Page 99) enable multi-threading, be aware of the risk of communication disruption with this operation. Note Fail-Safe devices If a Fail-Safe CPU is protected, you must enter the safety F-CPU password in the «Password in CPU» column to reset a Fail-Safe device to factory default values You must confirm an additional prompt and reselect your device if the program in the F-CPU is a safety program (Page 110). Reset to factory defaults requests for Fail-Safe devices are placed in the safety-relevant operation queue and only single-thread sequential processing is allowed. WARNING Verify that the device is not actively running a process before a Reset to factory defaults operation A Reset to factory defaults operation causes the CPU to go to STOP mode, which could affect the operation of an online process or machine. Unexpected operation of a process or machine could result in death or injury to personnel and/or property damage. Manual, V3.1, 10/2017, A5E AF 79
80 Tool operations 4.17 Format memory card To reset selected devices to factory default values, follow these steps: 1. Select one or more devices to include in the operation. You can use the Devices check box at the top of the device table to select or deselect all devices. Alternatively, you can use the right-click shortcut menu or the «Edit > Select» menu command to access the «Select All» and «Deselect All» commands. For each selected CPU, enter a password, if used, in the «Password in CPU» column of the currently open tab. Reset to factory defaults is a safety-relevant operation and the safety F-CPU password is required for a protected Fail-Safe device. 2. Select the «Operations > Reset > Reset to Factory Defaults» menu command to start the operation. Alternatively, click the «Reset» toolbar button and select «Reset to Factory Defaults» from the button drop-down menu. For Fail-Safe CPUs, the SIMATIC Automation Tool displays the «Program Update» dialog for additional confirmation. Select the device, devices or all devices that you want to reset to factory defaults. 3. Click the «Continue» button on the «Reset to Factory» dialog. The SIMATIC Automation Tool resets the selected devices to factory default values. 4. Allow time for the reset to complete. Wait until the device lights stop flashing before attempting another operation. Note Reset to Factory operation does not clear SIMATIC memory card If you have a SIMATIC memory card in a CPU, a «Reset to Factory» operation does not clear the contents. If you do not have a SIMATIC memory card in a CPU, «Reset to Factory» clears the program in the internal load memory of the CPU. The Event log below the device table shows the results of the operation. 80 Manual, V3.1, 10/2017, A5E AF
81 Tool operations 4.17 Format memory card 4.17 Format memory card SIMATIC memory cards plug into SIMATIC devices and support a variety of purposes. Depending on the device type or device family, you can use memory cards for the following purposes: Load memory of a CPU Storage medium for projects Firmware backups and updates Storage medium for the PROFINET device name Project transfer from one device to another Other files Note Use only Siemens software to format SIMATIC memory cards If you use a SIMATIC memory card for non-simatic purposes or you format it incorrectly, the internal structure of the SIMATIC memory card is overwritten. The structure is not recoverable and the SIMATIC memory card becomes unusable for SIMATIC devices. Do not use SIMATIC memory cards for non-simatic-related purposes and do not format SIMATIC memory cards with third-party devices or Windows tools. If you have a chain communication topology and the Communications settings (Page 99) enable multi-threading, be aware of the risk of communication disruption with this operation. WARNING Verify that the device is not actively running a process before formatting a memory card Formatting a memory card causes a CPU to go to STOP mode, which could affect the operation of an online process or machine. Unexpected operation of a process or machine could result in death or injury to personnel and/or property damage. Manual, V3.1, 10/2017, A5E AF 81
82 Tool operations 4.17 Format memory card To format SIMATIC memory cards on selected devices, follow these steps: 1. Select one or more devices to include in the operation. You can use the Devices check box at the top of the device table to select or deselect all devices. Alternatively, you can use the right-click shortcut menu or the «Edit > Select» menu command to access the «Select All» and «Deselect All» commands. 2. For each selected CPU, enter a password, if used, in the «Password in CPU» column of the currently open tab. 3. Select the «Operations > Reset > Format Memory Card» command to start the operation. Alternatively, click the «Reset» toolbar button and select «Format Memory Card» from the button drop-down menu. 4. Click the «Continue» button on the «Format Memory Card» dialog box. The SIMATIC Automation Tool formats the memory card of the selected devices. Note Fail-Safe devices If a Fail-Safe CPU is protected, then you must enter the safety F-CPU in the «Password in CPU» column to format a SIMATIC memory card in a Fail-Safe device. You must confirm an additional prompt and reselect your device if the program in the F-CPU is a safety program (Page 110). Format memory card requests for Fail-Safe devices are placed in the safety-relevant operation queue and only single-thread sequential processing is allowed. In this example, the SIMATIC Automation Tool formats the memory cards of the selected devices when you click the «Continue» button. The Event log below the device table shows the results of this operation. 82 Manual, V3.1, 10/2017, A5E AF
83 Tool operations 4.18 Retrieve Service Data from CPUs 4.18 Retrieve Service Data from CPUs When a CPU enters a defective state, the CPU saves fault information that you can upload to your PG/PC. You can send this Service Data to Siemens customer support and help find the cause of a fault. You can retrieve Service Data when the CPU is in STOP or RUN mode. The Service Data contains multiple files that are compressed into a single.zip file with a file name based on the PLC name, date, and time. A unique number in parentheses is appended to the file name to avoid duplicate file names. You configure or accept the default Service Data path from the Service Data settings (Page 102). To retrieve Service Data from selected CPUs, follow these steps: 1. Select one or more devices to include in the operation. You can use the Devices check box at the top of the device table to select or deselect all devices. Alternatively, you can use the right-click shortcut menu or the «Edit > Select» menu command to access the «Select All» and «Deselect All» commands. 2. For each selected CPU, enter a password, if used, in the «Password in CPU» column of the currently open tab. 3. Select the «Operations > Diagnostics > Retrieve Service Data» command to start the operation. Alternatively, click the «Show device diagnostics» toolbar button and select «Retrieve Service Data» from the button drop-down menu. 4. Click the «Continue» button on the «Upload Service Data» dialog box. The SIMATIC Automation Tool retrieves Service Data from the selected CPUs and stores the files in the Service Data folder (Page 102). Example: After you click the «Continue» button, the SIMATIC Automation Tool retrieves the Service Data from the selected devices. The Event log below the device table shows the results of the operation. Manual, V3.1, 10/2017, A5E AF 83
84 Tool operations 4.18 Retrieve Service Data from CPUs Service Data files Note Retrieving Service Data files from password-protected CPUs If a CPU is password protected, then you must provide a password with read access or full access to retrieve the Service Data files. Enter CPU passwords in the SIMATIC Automation Tool’s «Password in CPU» column before you execute the «Retrieve Service Data» command. Example S service data file: PLC_1 00-1C zip Contents of.zip file: ResourceStats.txt RAM.img PLCInformation.txt NAND.img General.txt Fault.bin DNN.txt CommBuffers.txt ASLog.txt Alarms.txt WARNING Service Data is clear text A malicious user could read the service Data files to obtain status and configuration details about the control system. The CPU stores the Service Data files in clear text (binary encoding), which is unencrypted. A CPU password can control access to this information. Operating a process or machine with compromised data could affect the operation of an online process or machine. Unexpected operation of a process or machine could result in death or injury to personnel and/or property damage. Use the TIA portal device configuration to set up CPU protection with a strong password. Strong passwords are at least ten characters in length, mixed letters, numbers, and special characters, are not words that can be found in a dictionary, and are not names or identifiers that can be derived from personal information. Keep the password secret and change it frequently. 84 Manual, V3.1, 10/2017, A5E AF
85 Tool operations 4.19 Set time in CPUs 4.19 Set time in CPUs Set time in CPUs to current PG/PC time The Time button sets the time for selected CPUs to your current PG/PC time. Time transformation information for time zone and daylight saving time is not changed and must be modified in the TIA Portal Project. WARNING Changing the CPU time of day could disrupt process operation Changing the CPU time of day could cause process disruption to STEP 7 programs that execute program logic based on the time of day. Unexpected operation of a process or machine could result in death or injury to personnel and/or property damage. Ensure that changing the time of day does not cause unwanted effects in the STEP 7 program. To set the CPU time to the PG/PC time, follow these steps: 1. Select one or more devices to include in the operation. You can use the Devices check box at the top of the device table to select or deselect all devices. Alternatively, you can use the right-click shortcut menu or the «Edit > Select» menu command to access the «Select All» and «Deselect All» commands. 2. For each selected CPU, enter a password, if used, in the «Password in CPU» column of the currently open tab. 3. Select the «Operations > Set Time» menu command or click the «Set the selected devices time» toolbar button: 4. Click the «Continue» button on the «Set Time» dialog box. The SIMATIC Automation Tool sets the system time on the selected devices to your current PG/PC time. The Event log below the device table shows the results of this operation. Manual, V3.1, 10/2017, A5E AF 85
86 Tool operations 4.20 Show CPU diagnostic buffer 4.20 Show CPU diagnostic buffer CPU diagnostic buffer A CPU diagnostics buffer contains an entry for each diagnostic event. Each entry includes the date and time the event occurred, an event category, and an event description. The diagnostic buffer displays the entries in chronological order with the most recent event at the top. When the log is full, a new event replaces the oldest event in the log. When power is lost, the events are saved. To show device diagnostics, follow these steps: 1. Select one or more CPUs in the device table. If you want to deselect all devices first, you can deselect the Devices check box at the top of the device table. Alternatively, you can also use the right-click shortcut menu or the «Edit > Select» menu to access the «Deselect All» command. 2. For each selected CPU, enter a password, if used, in the «Password in CPU» column of the currently open tab. 3. Select the «Operations > Diagnostics > Show CPU Diagnostics» menu command. Alternatively, click the «Show device diagnostics» toolbar button and select «Show CPU Diagnostics» from the button drop-down menu. The SIMATIC Automation Tool then displays a dialog that includes the diagnostic buffers of the selected CPUs. You can select a CPU from the device list on the left to see the diagnostic buffer for that CPU. 86 Manual, V3.1, 10/2017, A5E AF
87 Tool operations 4.20 Show CPU diagnostic buffer Example diagnostic log The diagnostics buffer contains the following types of entries: System diagnostic event (each CPU error and module error) CPU state changes (each power up, each transition to STOP, each transition to RUN) You can use the «Display CPU Time Stamp in PG/PC local time» check box to view time stamps in local time or UTC time (Coordinated Universal Time). Manual, V3.1, 10/2017, A5E AF 87
88 Tool operations 4.21 Execution order of operations 4.21 Execution order of operations Diagnostic buffer entries correspond to toolbar button operations or menu commands. For each toolbar button command, the SIMATIC Automation Tools adds a single operation to the operations queue for each selected device row. For example, if you select 20 different CPUs and click the RUN button, then the SIMATIC Automation Tool adds 20 RUN operations to the queue. For better performance, separate threads can run independently to initiate and execute the operations contained in the queue. You assign the number of simultaneous operations in the Communications settings (Page 99). Separate threads cannot simultaneously start jobs on one CPU to avoid race conditions. For example, one job cannot put the CPU in STOP mode while another job tries to place the same CPU in RUN mode. Execution examples Example 1: If the operations queue contains 10 go to RUN jobs for different CPUs, then multiple threads work in parallel to put all the CPUs in RUN mode. Since the threads execute in parallel, there is no guarantee of the order that CPUs complete the transition to RUN mode. Communication speeds can be different and how fast the job completes can be different, for each CPU. Example 2: You can queue as many jobs of the same type as you want. For example, you can place 100 CPUs in STOP mode by selecting all 100 CPUs and clicking the STOP button. However, a dialog box with a progress bar is displayed until all 100 jobs are complete. This dialog box will block the start of another operation, until all the STOP operations are complete. 88 Manual, V3.1, 10/2017, A5E AF
89 Saving your Device table information Save/Save as — Device table stored in protected.sat format Use the «File > Save/Save as» menu commands or click the Save button to store your device table information in an encrypted.sat file. After you save the SIMATIC Automation Tool project, you can use the «File > Open» menu command or Open button to restore this project’s device table information. The project file does not save device operating mode, selection state, or confirmation of selection state data. You can use the Refresh command to read the operating mode states. You assign the folder for saving projects in the Projects settings (Page 100). You must provide a valid password to save a SIMATIC Automation Tool.sat project file. You must enter the correct password to reopen an existing SIMATIC Automation Tool.sat project file. SIMATIC Automation Tool.sat file security Protect your SIMATIC Automation Tool project with a strong password. Strong passwords follow these rules: Are at least ten characters in length Mix letters, numbers, and special characters Are not words that can be found in a dictionary Are not names or identifiers that can be derived from personal information Keep the password secret and change it frequently. Minimum SIMATIC Automation Tool password requirements The SIMATIC Automation Tool enforces the following minimum password requirements: At least ten characters in length Mix of letters, numbers, and special characters Your.sat files are protected A valid password is required to decrypt and reopen a.sat file. Manual, V3.1, 10/2017, A5E AF 89
90 Saving your Device table information 5.2 Import/Export — Device table loaded from/stored in open.csv format Project file compatibility with previous versions The SIMATIC Automation Tool V3.1 supports safety-relevant operations that were prohibited in previous versions and older.sat project files do not contain necessary safety data in the project file. Opening V1.x project files is not possible. When you open a V2.x — V3.0 project file, you are notified a network scan must be performed before opening the project file. After the scan is complete, the file is opened and data from the opened file will be applied to devices which were found on the network scan. 5.2 Import/Export — Device table loaded from/stored in open.csv format The SIMATIC Automation Tool provides the following menu commands for exporting and importing device tables: The File>Export menu command saves the device table in.csv (comma separated values) text format. The File>Import menu command reads a.csv text file and puts that data in the SIMATIC Automation Tool device table. The first text line is a description header followed by one or more data lines. Data text must match the expected format, with 15 «,» comma characters on each line of text. 15 comma characters separate the 16 data columns that you see in the export example. The device table in the SIMATIC Automation Tool configures communication with a device group. If you put incorrect information in the cells of a device table or in an imported.csv file, then the affected device operation can fail. Correct the device data and try the operation again. For security reasons, CPU passwords are not exported. Note Copying all rows and columns displayed in the Device table If you want to create a document that shows your complete network as displayed in the Device table, then you can use the Device table and MS Excel. 1. Expand all rows in the Device table with the Edit>Expand All Devices command. 2. Enter Ctrl-A to highlight all rows and columns. 3. Enter Ctrl-C to copy the Device table data to the Windows clipboard. 4. Enter Ctrl-V and paste the clipboard data into a MS Excel worksheet. Note Importing.csv file from older SIMATIC Automation Tool versions The number of device table columns and the names of the columns changed in the SIMATIC Automation Tool V3.1 compared to previous versions. Therefore, you cannot import.csv files created or formatted for previous versions. 90 Manual, V3.1, 10/2017, A5E AF
91 Saving your Device table information 5.2 Import/Export — Device table loaded from/stored in open.csv format The Import / Export settings (Page 106) provide the file path for import and export operations. Export example The following image shows the text format of a.csv file exported from the SIMATIC Automation Tool. Note that the Export command only provides a list of the devices that are directly connected to the same subnet as the PG/PC running the SIMATIC Automation Tool and does not show CPU files or devices that are connected behind CPUs or IMs. The following image shows the same text file opened in Microsoft Excel. When you use the SIMATIC Automation Tool and import an exported.csv file, you must do the following to display all CPU files and devices: 1. Import the file with the Filel>Import command. 2. Reenter any protected CPU passwords. 3. Select all devices in the Device table. 4. Refresh the Device table using the Operations>Scan Network>Refresh Status of Selected Devices command. Manual, V3.1, 10/2017, A5E AF 91
92 Saving your Device table information 5.2 Import/Export — Device table loaded from/stored in open.csv format 92 Manual, V3.1, 10/2017, A5E AF
93 Menu, toolbar, shortcut keys and reference 6 information 6.1 Main menu The SIMATIC Automation Tool provides the following menus for device operations. File (Page 93) Edit (Page 94) Operations (Page 95) Options (Page 96) Tools (Page 107) Help (Page 107) If you press the Alt key, the underlined letter indicates the Alt key you can use to activate a menu or sub-menu command. Additionally, some you can activate some of the menu commands with shortcut key combinations (Page 109) File menu Tool icon Menu command Description New Creates a new SIMATIC Automation Tool project Open Save Save As Import Export Exit Displays an «Open» dialog where you can browse to a folder, select an.sat project file, and provide a password to open a protected project file. The «Open» dialog displays the projects folder (Page 100), but you can browse to any location for a project. Saves (Page 89) the device table data in a.sat file. If there is no filename, then this operation uses the «Save As» command. The projects folder (Page 100) is the default folder for saving projects. Saves the device table data is saved in a.sat file. You can browse to a folder, assign a.sat project filename, and assign a password to protect the project file. Imports (Page 90) data from a file in.csv format to the device table Exports (Page 90) device table data to a file in.csv format. Closes the application. If the project was modified since the last save operation, then the «Save» operation is performed. Manual, V3.1, 10/2017, A5E AF 93
94 Menu, toolbar, shortcut keys and reference information 6.1 Main menu Edit menu Tool icon Menu command Cut Copy Paste Select Description Cut the selected data and copy this data to the clipboard. Clipboard entries are compatible with Excel, so data can be shared between the two applications. Read-only cells are not deleted. Copy the selected data to the clipboard in Excel compatible format. Paste the data contained in the clipboard to selected field(s) in the SIMATIC Automation Tool. Read-only cells are not modified. Select Row(s) Select the device table rows that have focus. Deselect Row(s) Deselect the device table rows that have focus. Expand Device Expand the current device All Selected Devices Expand all selected devices All Devices Expand all rows for devices and modules. Collapse Device Collapse the current device All Selected Devices Collapse all selected devices All Devices Collapse all rows for devices and modules. Insert Device Insert a new device row at the selected row and push the following device rows downward. You can use this command to quickly add a device to the device table. If you use this command to insert a device that is behind a router, the device name is colored blue. The blue color means that the MAC address based operations (identify device, set IP address, and set PROFINET name) are not possible and the corresponding Device table cells are disabled. Delete Cell Text Delete contents of current cell Device Delete contents of current device row All Selected Devices Delete contents of all selected devices All Devices Delete contents for all device rows Refresh Device Refresh the current device All Selected Devices Refresh all selected devices All Devices Refresh all devices 94 Manual, V3.1, 10/2017, A5E AF
95 Menu, toolbar, shortcut keys and reference information 6.1 Main menu Operations menu Tool icon Menu command Scan Network Description Scan Entire Network Refresh Status of Selected Devices Scan device network (Page 46) Refresh selected devices in the device table (Page 46) RUN Put selected CPUs in RUN mode. (Page 54) STOP Put selected CPUs in STOP mode. (Page 54) Update Set IP Address Update the CPU with the IP Address information for the selected device(s) (Page 51) Set PROFINET Name Update the CPU with the PROFINET Name for the selected device(s) (Page 53) Program Update Update the CPU program or HMI operating system and runtime software, for the selected device(s) (Page 56) Firmware Update Update the CPU firmware with the program update file(s) for the selected device(s) (Page 69) Identify Reset Flash the LEDs on CPU devices or HMI screens. (Page 55)Use this feature to identify the physical location of a device. Memory reset Perform a memory reset on selected devices. (Page 78) Reset to Factory Defaults Format Memory Card Reset selected devices to factory defaults. (Page 79) Format memory card in selected devices. (Page 81) Diagnostics Show CPU Diagnostics Retrieve Service Data Show diagnostic buffer for a selected CPU. (Page 86) Retrieve Service Data for selected devices (Page 83) Set time Set time in selected CPUs to your PG/PC time. (Page 85) Backup/Restore Manual, V3.1, 10/2017, A5E AF 95
96 Menu, toolbar, shortcut keys and reference information 6.1 Main menu Tool icon Menu command Backup Device to File Restore Device from File File Operations Description Perform a backup of all selected devices. (Page 74) The SIMATIC Automation Tool saves a backup file for each selected device. Restore data from backup file(s) to the corresponding device(s). (Page 74) Note: File operations apply only to CPU files. Upload Data Logs Delete Data Logs Upload selected Data Log files to your PG/PC. (Page 67) Delete selected Data Log files. (Page 67) Upload Recipes Upload recipe files from the selected CPUs to your PG/PC. (Page 64) Add/Replace Recipe Add/Replace recipe files from the PG/PC to the selected CPUs. (Page 64) This operation adds recipes if they don’t exist and replaces recipes if they do exist. Delete Recipe Delete selected recipes from the corresponding CPUs. (Page 64) Options menu Options menu The Options menu contains the following menu commands: Tool icon Menu command Settings Start Automation License Manager Description Opens the Settings dialog where you can set default settings for the following categories: General (Page 98) Communications (Page 99) Projects (Page 100) Firmware Update (Page 101) Program Update (Page 102) Service Data (Page 102) Backup / Restore (Page 103) Recipes (Page 104) Data Logs (Page 104) Event Log (Page 105) Import/Export (Page 106) Starts the Automation License Manager with which you can license the SIMATIC Automation Tool 96 Manual, V3.1, 10/2017, A5E AF
97 Menu, toolbar, shortcut keys and reference information 6.1 Main menu SIMATIC Automation Tool pathnames The pathname examples for the «Options > Settings» dialog show pathnames of folders in C:UsersMyAccountSIMATIC Automation Tool, where «MyAccount» represents your user ID. If you use the browse function from the device table to locate a file such as a firmware update file or program update file, you do not see your user ID as a folder under «Users». Instead you see the folder «My Documents». When using the SIMATIC Automation Tool browse function, browsing to the «My Documents» folder is equivalent to browsing to the folder with your user ID («MyAccount») name. From Windows Explorer, the Documents folder under the Libraries folder is also equivalent to the «My Documents» folder and the «MyAccount» folder. The following sections of the «Options > Settings» menu command dialog provide a default path that you can change: Projects (Page 100) Firmware update (Page 101) Program update (Page 102) Service Data (Page 102) Backup/Restore (Page 103) Recipes (Page 104) Data Logs (Page 104) Event Log (Page 105) Manual, V3.1, 10/2017, A5E AF 97
98 Menu, toolbar, shortcut keys and reference information 6.1 Main menu General settings You can select the user interface language: English, German, French, Spanish, or Italian Select the check box to show unsupported devices on a network scan (Page 46). The SIMATIC Automation Tool displays unsupported devices as disabled by using gray text in the device table. If you deselect the check box, the SIMATIC Automation Tool filters out unsupported devices from the device table. Note Changing the user interface language change clears the Event Log When you change the user interface language, the SIMATIC Automation Tool clears the Event Log is cleared. 98 Manual, V3.1, 10/2017, A5E AF
99 Menu, toolbar, shortcut keys and reference information 6.1 Main menu Communications settings You use the Communications options to set options related to multi-threading. Using multiple threads for operations If your network has a star topology where each CPU has a direct connection to the PG/PC through an Ethernet switch, then you can safely use the multiple threads option. If your network has a chain topology, disable this option to prevent one CPU from disrupting the communication to other devices. A chain topology, for example, would be chain connections from the PG/PC to CPU 1 to CPU 2 to CPU 3 to others. Figure 6-1 Example: Chain topology With multi-threading, a thread that causes CPU 1 to restart disrupts an operation that is in progress for CPU 2, or any other CPUs in the chain. Note that a chain topology might also be implemented with CM or CP modules. Manual, V3.1, 10/2017, A5E AF 99
100 Menu, toolbar, shortcut keys and reference information 6.1 Main menu Simultaneous operations SIMATIC Automation Tool performance might be increased by allowing operations on multiple devices to occur simultaneously on multiple threads. Note Communication problems with the SIMATIC Automation Tool For example, you send an operation command to multiple devices, but a device does not complete the operation and a communication error displayed for that CPU. However, other devices are communicating and executing the operation as expected. If you have this problem, then reduce the number of simultaneous (threads/connections). Close and restart the SIMATIC Automation Tool, then try the group operation again. Timeout for communications operations If you send an operation command to a device and the connection has a very slow data transfer rate, then you might get a communication timeout error. If you have this problem, then increase the timeout for communications operations Projects settings You can accept the default path to save SIMATIC Automation Tool project data (Page 89) or assign a new path. Your path might have a different drive letter and «MyAccount» represents the login name of the current user (Page 97). 100 Manual, V3.1, 10/2017, A5E AF
101 Menu, toolbar, shortcut keys and reference information 6.1 Main menu Firmware update settings You can accept the default path to firmware update files (Page 69) or assign a different path. Your path might have a different drive letter and «MyAccount» represents the login name of the current user (Page 97). Click the check box to allow or disallow a firmware update with the same firmware version. Disallowing the replacement of an identical firmware version saves processing time by preventing unnecessary operations. Manual, V3.1, 10/2017, A5E AF 101
102 Menu, toolbar, shortcut keys and reference information 6.1 Main menu Program update settings You can accept the default path to program files (Page 56) or assign a different path. Your path might have a different drive letter and «MyAccount» represents the login name of the current user (Page 97) Service Data settings You can accept the default path to Service Data files (Page 83) or assign a different path. Your path may have a different drive letter and «MyAccount» represents the login name of the current user (Page 97). 102 Manual, V3.1, 10/2017, A5E AF
103 Menu, toolbar, shortcut keys and reference information 6.1 Main menu Backup/Restore settings You can accept the default path to Backup and Restore files (Page 74) or assign a different path. Your path may have a different drive letter and «MyAccount» represents the login name of the current user (Page 97). Manual, V3.1, 10/2017, A5E AF 103
104 Menu, toolbar, shortcut keys and reference information 6.1 Main menu Recipes settings You can accept the default path to recipe files (Page 64) or assign a different path. Your path may have a different drive letter and «MyAccount» represents the login name of the current user (Page 97) Data Logs settings You can accept the default path to Data Log files (Page 67) or assign a different path. Your path may have a different drive letter and «MyAccount» represents the login name of the current user (Page 97). 104 Manual, V3.1, 10/2017, A5E AF
105 Menu, toolbar, shortcut keys and reference information 6.1 Main menu Event Log settings By default, the SIMATIC Automation Tool clears the Event Log (Page 40) at the start of each device operation. You can deselect «Clear log before each operation» if you want to disable the default. When you select the «Automatically save log file», then you can accept the default path or assign a different path. Your path may have a different drive letter and «MyAccount» represents the login name of the current user (Page 97). The SIMATIC Automation Tool then saves each message in the Event Log window to the file «EventLogFile.csv». When you close and re-open the SIMATIC Automation Tool, logging automatically resumes in the Event Log file. You can clear the content of the Event Log file by clicking the «Clear Log» button. This clears the contents of the file, but does not delete it. Manual, V3.1, 10/2017, A5E AF 105
106 Menu, toolbar, shortcut keys and reference information 6.1 Main menu Import / Export settings You can accept the default path for storage of import / export files (Page 90) or assign a different path. Your path might have a different drive letter and «MyAccount» represents the login name of the current user (Page 97). 106 Manual, V3.1, 10/2017, A5E AF
107 Menu, toolbar, shortcut keys and reference information 6.1 Main menu Tools menu Tools menu The Tools menu is also accessible from the toolbar icon. Tool icon Menu command Check for Firmware Updates Preload Firmware Update Files Description Check for firmware updates for a single selected device. The SIMATIC Automation Tool displays the Web page with firmware update files for the selected device. Look for firmware update files for the selected devices The SIMATIC Automation Tool then preloads firmware update files in the «New Firmware Version» drop-down lists for the selected devices Help menu Tool icon Menu command View user guide About SIMATIC Automation Tool Description Open the SIMATIC Automation Tool user guide. Displays the About dialog that contains: Product name: The text «(No license)» next to the product name indicates that you do not have a license, which limits the functionality. Version Check for updates button, which allows you to find SIMATIC Automation Tool updates. Manual, V3.1, 10/2017, A5E AF 107
108 Menu, toolbar, shortcut keys and reference information 6.2 Toolbar icons 6.2 Toolbar icons Tool icon Description New: Create a new SIMATIC Automation Tool project file with the «.sat» file name extension. Open: Display an «Open» dialog that can browse to a folder, select a project file, and provide a password to open the encrypted project file. Save the opened project data to a file. If no filename and password are assigned, then the «Save As» dialog is displayed. Cut the selected data and copy the data to the clipboard. Clipboard data are compatible with Excel so data can be shared between the two applications. Copy the selected data to the clipboard. Paste the data contained in the clipboard to the selected field(s). Scan the selected network, with the following options: Scan the selected network interface for accessible CPUs and modules. Refresh the status of all devices in the device table RUN: Put selected CPUs in RUN mode. STOP: Put selected CPUs in STOP mode. Update device(s) with data from the SIMATIC Automation Tool from one of the following choices: Set IP address Set PROFINET name Program update Firmware update You must select the corresponding device table tabs to enter the data to update. Identify devices by flashing device LEDs or HMI screens on selected devices. Use this feature to identify the physical location of a device. Reset functions for selected devices: Memory reset Reset to factory defaults Format memory card Access diagnostic information: Read a CPU diagnostic buffer Retrieve Service Data from selected devices Set time: Set the system time in selected CPUs to current PG/PC time. Backup and restore functions: Create Backup file(s) for selected CPUs and HMI devices. Restore selected device(s) from backup file(s) 108 Manual, V3.1, 10/2017, A5E AF
109 Menu, toolbar, shortcut keys and reference information 6.3 Shortcut keys Tool icon Description File operations: Upload or delete Data Logs Upload, add, replace, or delete recipes Delete operations require that the CPU be in STOP mode. Check for firmware updates or preload firmware update files Network interface drop-down list: Select the Ethernet network interface that is connected to the industrial control network. 6.3 Shortcut keys The SIMATIC Automation Tool supports the following shortcut keys for navigating in the device table and for some of the menu commands (Page 93). CTRL+PgUp CTRL+PgDn CTRL+A CTRL+C CTRL+O CTRL+S CTRL+V CTRL+X CTRL+Z ARROW KEYS SHIFT+ARROW KEYS DELETE ENTER ESC HOME CTRL+HOME END CTRL+END PAGE DOWN PAGE UP SPACEBAR TAB Alt+F4 Switches between tabs, from left to right Switches between tabs, from right to left Selects the entire table Copies the selection to the clipboard Displays the project open dialog to open a new project file Displays the Save As dialog Pastes the contents of the clipboard at the insertion point and replaces any selection Cuts the selected cells Undo the last edit or delete action Move one cell up, down, left or right Extends the selection Removes the contents of the active cell Completes cell editing and validates data Cancels cell editing restoring the cell to original value Moves to the beginning of a row Moves to the beginning of the table Moves to the end of a row Moves to the end of the table Moves one screen down in the table Moves one screen up in the table Selects or clears the rows check box, or multiple rows, if selected Moves one cell to the right Exit Manual, V3.1, 10/2017, A5E AF 109
110 Menu, toolbar, shortcut keys and reference information 6.4 Safety program definition 6.4 Safety program definition A safety program is a program you create in STEP 7 that includes safety blocks. If you have installed STEP 7 Safety Advanced, then whenever you add a Fail-Safe CPU to your STEP 7 project, the Program Blocks folder automatically includes the safety blocks. When you download this program to a Fail-Safe CPU, it is a safety program. 110 Manual, V3.1, 10/2017, A5E AF
111 SIMATIC Automation Tool API for.net framework Introduction to the API The SIMATIC Automation Tool API allows you to create custom applications based on the functionality available in the SIMATIC Automation Tool application. You can optimize a custom application to combine operations and support user workflows specific to your industrial automation network. 7.2 API software license and version compatibility Software license required for V3.0 and later versions You must have a valid SIMATIC Automation Tool license to use the API (Application Programming Interface). When you install the SIMATIC Automation Tool, provide a license, and agree to all the license terms, you have access to the API for your own programming. You do not have permission to copy or redistribute any part of the SIMATIC Automation Tool including any API.exe or.dll files. To distribute your custom user interface application to a third party, the third party must also have a valid license for the SIMATIC Automation Tool V3.1 Compatibility with previous versions The V3.1 API is not compatible with previous versions. You must rewrite programs written with versions of the API prior to V3.1. See also Network example (Page 237) Manual, V3.1, 10/2017, A5E AF 111
112 SIMATIC Automation Tool API for.net framework 7.3 Designing a user interface application for Fail-Safe devices and safety-relevant operations 7.3 Designing a user interface application for Fail-Safe devices and safety-relevant operations API support for safety-relevant operations and Fail-Safe devices The SIMATIC Automation Tool V3.1 API supports safety-relevant operations that were not possible with prior versions of the SIMATIC Automation Tool: Program update Restore device from backup file Reset to factory defaults Format memory card Note The «SIMATIC Safety — Configuring and Programming» manual contains a warning identified as «S078». This warning states the following, «The use of tools for the automation/operation of user interfaces (e.g. TIA Portal, Web server) which allow access protection for the F-CPU to be bypassed (e.g. saving or automatic entry of an F-CPU password or Web server password), is not permitted.» This warning does not apply to the SIMATIC Automation Tool. The SIMATIC Automation Tool and the SIMATIC Automation Tool API work with F-CPUs and can store CPU passwords for F-CPUs. Safety features that the API provides TÜV SÜD has certified the SIMATIC Automation Tool V3.1 and the associated API. The SIMATIC Automation Tool API uses diverse and redundant techniques. The API thus helps protect user application program code from performing potentially perform unsafe operations. The API provides the following features: Independent connection and legitimization process for each safety-relevant operation Identity checks for safety-relevant operations to Fail-Safe devices Identification of safety programs Required use of safety F-CPU password for any safety-relevant operation to a passwordprotected F-CPU Use of 32-bit CRC checksums to compare Fail-Safe device online and offline representations Use of hamming codes (Page 122) to indicate TRUE and FALSE states Comparison of F-signatures after the Program Update and Restore from Backup operations to verify that the operation completed successfully 112 Manual, V3.1, 10/2017, A5E AF
113 SIMATIC Automation Tool API for.net framework 7.3 Designing a user interface application for Fail-Safe devices and safety-relevant operations User interface programming guidelines for safety-relevant operations WARNING Protect safety-relevant operations as much as possible Fail-Safe CPUs together with Fail-Safe I/O and safety programs provide the capability for a high degree of operational safety. When you use the SIMATIC Automation Tool API, ensure that safety-relevant operations are as safe as possible. Siemens assumes no liability for user interface applications developed with the SIMATIC Automation Tool API. The software developer assumes all liability. Failure to follow adequate programming practices can result in death or personal injury when the user operates your user interface application. Manual, V3.1, 10/2017, A5E AF 113
114 SIMATIC Automation Tool API for.net framework 7.3 Designing a user interface application for Fail-Safe devices and safety-relevant operations Identifying and protecting safety-relevant operations The SIMATIC Automation Tool V3.1 presents a confirmation dialog for safety-relevant operations. The user must manually select each Fail-Safe device for the operation and then click «Continue», before processing can begin. As you develop your user interface application using the API, identify whether an operation is one of the following safety-relevant operations: Program update Restore device from backup file Reset to factory defaults Format memory card For operations that are safety-relevant, provide a confirmation dialog for your users. Use the DetermineConfirmationMessage API method (Page 209) to determine the type of confirmation dialog to display. Providing an additional confirmation dialog protects users from accidentally performing an unintended safety-relevant operation. The following dialog is an example of a confirmation dialog from the SIMATIC Automation Tool for a Program Update operation: 114 Manual, V3.1, 10/2017, A5E AF
115 SIMATIC Automation Tool API for.net framework 7.3 Designing a user interface application for Fail-Safe devices and safety-relevant operations Recommended programming practices Use the following programming practices to ensure that you protect safety-relevant operations and minimize the chance of unsafe user action: Perform all safety-relevant operations on a single thread. Require entry of the safety F-CPU password for safety-relevant operations. Verify the entered password against the CPU password. Use asterisks to hide passwords from the display when the user enters passwords. Check the return codes of all methods. Ensure that your program logic only proceeds upon successful method returns. Include appropriate exception handling in your implementation. The API throws exceptions for critical internal faults that it detects. Be sure that your software handles any exceptions in an appropriate manner. For all safety-relevant operations, evaluate whether the operation succeeded. Display a message to the user upon a successful program update. Display an error message upon an unsuccessful program update. Follow the Event Log conventions of the SIMATIC Automation Tool for informing the user about safety-relevant operation outcomes. Use hamming codes (Page 122) in your application to implement Boolean states. Use coloring (Page 116) in the application to indicate Fail-Safe devices, safety programs, safety F-CPU passwords and other user-entered data. Prompt for confirmation for all operating mode changes (RUN/STOP). Refresh the user interface after each operation so that the application displays the correct device data. Program update requirements For program updates on selected F-CPUs, provide an additional dialog for the user to reselect the Fail-Safe devices and confirm the following operations: Updating an existing safety program with another safety program Updating an existing safety program with a standard program Updating an existing standard program with a safety program Updating a CPU with no program with a safety program Deleting an existing safety program Following a safety program update, verify that the F-signature of the program updated in the CPU matches the F-signature of the program update file. Restore from backup requirements Before restoring a backup file, evaluate whether the file is a safety program and prompt for user confirmation according to the same requirements for program updates. Manual, V3.1, 10/2017, A5E AF 115
116 SIMATIC Automation Tool API for.net framework 7.3 Designing a user interface application for Fail-Safe devices and safety-relevant operations Certification Note Acquire certification for your user interface application Siemens strongly suggests using a notified body such as TÜV SÜD to certify the safety of your design and implementation Color coding safety fields in your user interface Siemens strongly recommends that you use color coding to give the user a visual indication of anything related to Fail-Safe CPUs and safety programs. The decision trees indicate the logic Siemens uses in color coding various safety-relevant fields in the SIMATIC Automation Tool user interface. Consider adopting an identical or similar approach as you design your application. Decision tree conventions * Subprocesses that cannot fail, have no error processing, or represent a situation where the application intentionally ignores errors 116 Manual, V3.1, 10/2017, A5E AF
117 SIMATIC Automation Tool API for.net framework 7.3 Designing a user interface application for Fail-Safe devices and safety-relevant operations Coloring a CPU device icon Manual, V3.1, 10/2017, A5E AF 117
118 SIMATIC Automation Tool API for.net framework 7.3 Designing a user interface application for Fail-Safe devices and safety-relevant operations Coloring device data 118 Manual, V3.1, 10/2017, A5E AF
119 SIMATIC Automation Tool API for.net framework 7.3 Designing a user interface application for Fail-Safe devices and safety-relevant operations Coloring a CPU password Manual, V3.1, 10/2017, A5E AF 119
120 SIMATIC Automation Tool API for.net framework 7.3 Designing a user interface application for Fail-Safe devices and safety-relevant operations Coloring a program folder 120 Manual, V3.1, 10/2017, A5E AF
121 SIMATIC Automation Tool API for.net framework 7.3 Designing a user interface application for Fail-Safe devices and safety-relevant operations Coloring a program password Manual, V3.1, 10/2017, A5E AF 121
122 SIMATIC Automation Tool API for.net framework 7.4 Architectural overview Hamming codes Hamming codes are binary codes. They can detect incidental bit errors. The SIMATIC Automation Tool uses 32-bit hamming codes with a hamming distance of eight. The API uses hamming codes to represent all Boolean values related to safety-relevant operations. You can program your user interface application to use the provided Boolean value states for safety-relevant operations. Because the API implements these states with hamming codes, you can have high confidence in the data integrity of the safety-relevant Boolean states. 7.4 Architectural overview Networks The.NET class Network represents the industrial network as a whole. This class performs functions using a network interface card (NIC) installed on a PG/PC. The Network class is used to scan for available interface cards and to select the network interface card. Network constructor (Page 134) QueryNetworkInterfaceCards method (Page 135) SetCurrentNetworkInterface method (Page 136) CurrentNetworkInterface property (Page 136) ScanNetworkDevices method (Page 137) SetCommunicationsTimeout method (Page 138) GetCommunicationsTimeout method (Page 139) CheckValidLicense method (Page 139) GetEmptyCollection method (Page 140) Devices The individual devices on the network are represented by interfaces. Each interface class provides properties and methods appropriate for the represented network device. Each hardware device on the network is best represented by one of the following interfaces: IProfinetDevice Any device directly accessible on the industrial network can be represented by this interface. ICPU This represents S7 CPUs that are directly connected to the network. Specific functionality is supported for CPUs. IHMI This represents SIMATIC HMIs that are directly connected to the network. Specific functionality is supported for HMIs. IBaseDevice This interface is used to represent devices not directly connected to the Ethernet network, but accessible through another device. For example, a PROFIBUS slave station that is connected to a CPU on the network is represented as an IBaseDevice. IModule This interface is used to represent individual I/O modules that are plugged into a CPU, PROFINET device, or PROFIBUS station. IHardware This is the base class for all other interfaces. This interface provides access to properties that are common for all hardware items recognized on the network. 122 Manual, V3.1, 10/2017, A5E AF
123 SIMATIC Automation Tool API for.net framework 7.4 Architectural overview The interfaces are grouped into collections that represent groups of devices. Collections are provided to support iteration, filtering, and searching. IProfinetDeviceCollection A collection of all devices directly accessible on the network. IModuleCollection A collection that may represent modules plugged into a CPU or IM. IHardwareCollection This collection represents a CPU and all its modules. Device classes, interfaces, and methods: IProfinetDeviceCollection class (Page 141) IProfinetDevice interface (Page 153) ICPU interface (Page 172) IHMI interface (Page 215) The following class diagram shows the inheritance relationship between these interface classes: Note See the example (Page 237) industrial network and the SIMATIC Automation Tool API classes that are used to represent each network component. Manual, V3.1, 10/2017, A5E AF 123
124 SIMATIC Automation Tool API for.net framework 7.4 Architectural overview See also FirmwareUpdate method (Page 158) Backup method (ICPU interface) (Page 188) SetOperatingState method (Page 200) Modules property and IModuleCollection class (Page 170) Restore method (ICPU interface) (Page 187) SetIP method (Page 162) Identify method (Page 160) RefreshStatus method (Page 157) Reset method (Page 161) SetProfinetName method (Page 164) GetCurrentDateTime method (Page 194) GetDiagnosticsBuffer method (Page 195) MemoryReset method (Page 196) ProgramUpdate method (Page 180) ResetToFactoryDefaults method (Page 197) SetCurrentDateTime method (Page 201) UploadServiceData method (Page 206) IModule interface (Page 171) DeleteDataLog method (Page 190) DeleteRecipe method (Page 192) UploadDataLog method (Page 202) UploadRecipe method (Page 204) Backup method (IHMI interface) (Page 218) ProgramUpdate method (IHMI interface) (Page 219) Restore method (IHMI interface) (Page 221) DownloadRecipe method (Page 189) RemoteInterfaces properties (Page 211) IProfinetDevice events (Page 167) 124 Manual, V3.1, 10/2017, A5E AF
125 SIMATIC Automation Tool API for.net framework 7.5 Referencing the API in a user interface application 7.5 Referencing the API in a user interface application Siemens delivers the API with several DLLs, executables and source files: AutomationToolAPI.dll DeviceManagerClient.dll (HMI) hmitr.dm.client.proxy.dll (HMI) hmitr.dm.client.stub.exe (HMI) hmitr.ipc.dll (HMI) AsModels folder and subfolders (Offline object models) The API was created with Microsoft Visual Studio 2015 SP2 Update 3 using the.net framework You can use this API with applications that you create with this version of Visual Studio or later versions. All code examples and screen captures in this document were made with Visual Studio 2015 SP2 Update 3, in the C# programming language. To include the API in your application, you must add AutomationTool.dll as a «reference» in the Visual Studio solution. In any source file where the API classes are referenced, you must add the following statement referencing the API namespace: using Siemens.Automation.AutomationTool.API; To compile any of the code samples in this document, the correct using statement must be present in the same source file (*.cs) as the example code. For simplicity, the individual code examples in this document do not include the using statement. To use the API at runtime, the correct version of S7 communications must be installed on the PG/PC. The easiest way to ensure you have the correct files is to install the SIMATIC Automation tool on that machine. Once installed, you can place the API dll (AutomationToolAPI.dll) together with the HMI related files listed above in any folder on the PG/PC and use them successfully. Manual, V3.1, 10/2017, A5E AF 125
126 SIMATIC Automation Tool API for.net framework 7.6 Common support classes 7.6 Common support classes EncryptedString class Before describing the operations available through the API, it is important to have an understanding of some common classes that are used in most of the code examples. The EncryptedString class Many API operations require a legitimized connection to a protected S7 CPU. For these operations, a password is required as one of the parameters to the method. The S7 CPU accepts the password in an encrypted format. To accomplish this, the API provides the EncryptedString class. Constructor EncryptedString() EncryptedString(string strtext) Description An empty encrypted string An encrypted string Property name Return type Description IsEmpty bool True, if there is no password IsEncrypted byte True if there is an encrypted password Method name Return type Description ToString() string Hexadecimal string representation of the encrypted password Clear() void Clears the encrypted password GetHash() byte[] Password encrypted hash array representation of the password WriteToStream(Stream stream) void Serialize password from a stream ReadFromStream(Stream stream) void Deserializes a password from a stream This class provides a way to encrypt a plain-text password so that you can legitimize a CPU connection. Many of the code examples show a typical usage of this class. 126 Manual, V3.1, 10/2017, A5E AF
127 SIMATIC Automation Tool API for.net framework 7.6 Common support classes If you wish to encrypt a password to use multiple times in your code, you can instantiate the EncryptedString, then pass it as a parameter to multiple calls, as follows: EncryptedString pwd = new EncryptedString(«password»); devascpu.selected = true; devascpu.setpassword(pwd); Note If a CPU is not password protected, simply pass an empty string to the EncryptedString constructor. For example, the following code is successful for a CPU with no protection configured: devascpu.setpassword(new EncryptedString(«Password»)); devascpu.selected = true; Result retval = devascpu.refreshstatus(); The EncryptedString object does not store the user-specified plain-text password. However, if your application codes passwords as literal strings you create a security risk. For example, new EncryptedString(«myPassword») The plain-text «mypassword» is compiled into the user application, and may be visible to others using.net reflection Result class The Result class encapsulates the logic that determines if a given API action succeeded. Most API actions involve some level of network communications. Many also involve opening a connection to a network device. Such actions are never guaranteed to be successful. The Result object returned by an API action should always be inspected for success or failure. Constructor Result() Result(ErrorCode ncode) Description Creates successful result with no warnings Creates specific error with no warnings Property name Return type Description Warnings ErrorCode[]get; Returns all warnings in an array of error codes Error ErrorCode get; Returns error code HasWarnings Bool get; True when warnings exists Failed Bool get; True when the result failed Succeeded Bool get; True when the result is successful Succeeded = not Failed Manual, V3.1, 10/2017, A5E AF 127
128 SIMATIC Automation Tool API for.net framework 7.6 Common support classes In many instances, it may be sufficient to know whether a given action was successful. In this case, a check of the Succeeded property is all that is required: dev.selected = true; Result retval = dev.refreshstatus(); if (retval.succeeded) // // Continue operations… // In other cases it may be helpful to have more information about the failure. To inspect the specific error, use the Code property, as follows: dev.selected = true; Result retval = dev.refreshstatus(); if (retval.succeeded) // // Continue operations… // else // // What happened? // switch (retval.error) case ErrorCode.AccessDenied: break; case ErrorCode.TooManySessions: break; See the ErrorCode (Page 229) topic for a list of values. The Result class also provides a language-specific error description. The GetDescription method uses a Language value as a parameter. For example, the following code returns the error description in German: String strerror = result.geterrordescription(language.german); See the Language (Page 232) enumeration topic for a list of values. 128 Manual, V3.1, 10/2017, A5E AF
129 SIMATIC Automation Tool API for.net framework 7.6 Common support classes SIMATIC Automation Tool V3.1 has a new warnings feature for cases where you need to be aware of issues that have occurred. For instance, the Refresh that is performed on the device at the end of a Program Update may create warnings that are not directly related to the main calling function. You can access these warning through the Result class, as follows. if (retval.haswarnings) foreach (ErrorCode warning in retval.warnings) // // Continue operations… // Diagnostic class A diagnostic item contains diagnostic information for a single event. The diagnostic buffer can be read from a CPU. See the ICPU interface (Page 172) chapter for details. Constructor DiagnosticsItem() Description Creates default diagnostic item Property Name Return type Description TimeStamp DateTime get; Time stamp of the diagnostic event State Byte get; 0=Outgoing event; 1=Incoming event Description1 String get; Basic description Description2 String get; Detailed description Manual, V3.1, 10/2017, A5E AF 129
130 SIMATIC Automation Tool API for.net framework 7.6 Common support classes DataChangedEventArgs class A data changed event contains information about data that has changed within the API. See the IProfinet interface (Page 153) chapter for details. Constructor Description DataChangedEventArgs(DataChangedType type) Creates event of specific type DataChangedType type Type of data that has changed Property Name Return type Description Type Data- ChangedType Type of event Used with the following event handler: public delegate void DataChangedEventHandler(object sender, DataChangedEventArgs e); ProgressChangedEventArgs class A progress changed event contains information about data that has changed within the API. See the IProfinet interface (Page 153) chapter for details. Constructor ProgressChangedEventArgs(ProgressAction action, int index, int count, uint hardwareid) ProgressAction action int index int count uint hardwareid Description Used to create and default a progress changed event args class Type of progress that has occurred. Index of current item being processed Total items to process ID of the item being processed Property Name Return type Description ID uint get; ID of item Cancel bool get; Set to true to terminate current operation Count int get; Maximum value Index int get; Current value Action ProgressAction get; Action type of this event Used with the following event handler: public delegate void ProgressChangedEventHandler(object sender, ProgressChangedEventArgs e); 130 Manual, V3.1, 10/2017, A5E AF
131 SIMATIC Automation Tool API for.net framework 7.7 Common support interfaces 7.7 Common support interfaces IRemoteFile interface IRemoteFile is an interface used to represent files used in datalogs and recipes. Property name Return type Description Selected bool get; set; The selected state FileSize ulong get; The size on the file on the CPU Name string get;set; The file name and extension on the device IRemoteFolder interface IRemoteFolder is used to represent folders used in datalogs and recipes. Method name Return type Description SetRemoteFile(string strfile) Result string strfile Full file name and path of the remote file Property name Return type Description NewFileNameError- Result get; Code The error code saved after calling SetRemote- File Method. NewFileNameIsValid bool get; True if the file name is valid FileUpdateAllowed bool get; True if the folder can add or replace a file in the list SelectedCount int get; The number of files selected Files List<IRemoteFile> get; Array of files in this folder FolderType RemoteFolderType get; Type of folder (datalog or recipe) Exists bool get; True if this folder exists on the device Selected bool get;set; True if the folder is selected NewFile string get; Full file path of the file to add or replace NewFileName string get; Name of the file to add or replace Name string get; Name of the folder Manual, V3.1, 10/2017, A5E AF 131
132 SIMATIC Automation Tool API for.net framework 7.7 Common support interfaces IRemoteInterface interface IRemoteInterface is an interface used to represent distributed I/O on a network. Property name Return type Description Devices List<IBaseDevice>get; Array of remote interfaces used to represent decentralized I/O InterfaceType RemoteInterfaceTypeget; Type of remote interface such as PROFINET or PROFIBUS Name string get; The file name and extension on the device IHardware interface IHardware is an interface used to represent the basic common hardware interface for devices and modules. IModule extends the IHardware interface. Method name Return type Description SetFirmwareFile(string Result strfile) Sets the firmware file to update on this device or module. Property Name Return Type Description Comment string get;set; Comment for each device and module Selected bool get;set; Used to for external storage of the selected state NewFirmwareNameError- Code Result get; Last error from SetFirmwareFile method FirmwareUpdateAllowed bool get; True when this device or module supports firmware update NewFirmwareNameIsValid bool get; True when the firmware file is valid for this device or module Failsafe bool get; True if device or module is failsafe Supported bool get; True if this device or module is supported NewFirmwareFile string get; Full file path of the firmware file NewFirmwareVersion string get; Version of the firmware file which is displayed in the dropdown Configured bool get; True if this device or module is configured. HardwareNumber short get; Hardware revision number of device or module. SlotName string get; Name of the slot of device or module. SubSlot uint get; Sub slot number of device or module. Slot uint get; Slot number of device or module. StationNumber uint get; Station number of device or module. SerialNumber string get; Serial number of device or module. FirmwareVersion string get; Firmware version of device or module. 132 Manual, V3.1, 10/2017, A5E AF
133 SIMATIC Automation Tool API for.net framework 7.7 Common support interfaces Property Name Return Type Description ArticleNumber string get; Article number of device or module. Description string get; Description of article number of device or module. Name string get; Name of device or module. ID uint get; ID of device or module IModule interface IModule is an interface used to represent a module. IModule extends the IHardware interface. Method name Return type Description None Property name Return type Description None IBaseDevice interface IBaseDevice is an interface used to extend the IHardware interface which represents the most basic device type. Method name Return type Description GetHardwareFromID(uint hardwareid) IHardware Finds a device or module using an ID Property name Return type Description HardwareInDisplayOrder IHardwareCollection Array of hardware items in the order to be displayed HardwareInFirmware- IHardwareCollection Array of hardware items in the order of firmware Order update order Modules IModuleCollection Array of modules ThreadNumber int Current thread number of operation Family DeviceFamily Family type enum Events Return type Description ProgressChanged ProgressChangedEventHandler Called to monitor progress DataChanged DataChangedEventHandler Called when data changes in the API Manual, V3.1, 10/2017, A5E AF 133
134 SIMATIC Automation Tool API for.net framework 7.8 Network class IHardwareCollection interface IHardwareCollection is an interface used to represent array of IHardware interfaces. This interface extends a.net List class. Property name Type Description None IModuleCollection interface IModuleCollection is an interface used to represent array IModule interface. This interface extends a.net List class. This interface is used to represent local and remote modules in the hardware rack. Property name Type Description None 7.8 Network class Network constructor The.NET class Network performs functions using a network interface card (NIC) installed on the PG/PC. The Network class is used to scan for available interface cards and to select the interface card that communicates with the industrial network. To interact with the industrial network, your program declares a variable of type Network, as follows: Network mynetwork = new Network(); You can use this object to find available network interfaces, and to select a network interface. 134 Manual, V3.1, 10/2017, A5E AF
135 SIMATIC Automation Tool API for.net framework 7.8 Network class QueryNetworkInterfaceCards method Return type Result Method name QueryNetworkInterfaceCards Parameters Name Data type Parameter type Description ainterfaces List<string> Out A collection of all the network interface cards on the PG/PC listed by name. To identify the available network interface cards, use the QueryNetworkInterfaceCards method, as shown in the following example: Network mynetwork = new Network(); List<String> interfaces = new List<String>(); Result retval = mynetwork.querynetworkinterfacecards(out interfaces); if (retval.succeeded) // // The method returns a List of strings. // Each string in the list represents an available NIC. // The list can be iterated using array notation. // for (Int32 index = 0; index < interfaces.count; index++) String strinterfacename = interfaces[index]; As the example shows, the method outputs a list of strings. Each item in the list represents an available network interface card, identified by name. The QueryNetworkInterfaceCards method returns a Result object. This represents the status of the operation. At a high level, this object will indicate whether the operation succeeded (the Succeeded property is true) or failed (the Succeeded property is false). There are many reasons that an operation might fail. For a complete description of the Result class, see also Result class (Page 127) Manual, V3.1, 10/2017, A5E AF 135
136 SIMATIC Automation Tool API for.net framework 7.8 Network class SetCurrentNetworkInterface method Return type Result Method name SetCurrentNetworkInterface Parameters Name Data type Parameter type Description strinterface string In The name of the network interface to use. Normally, this will be one of the names returned from the QueryNetworkInterfaceCards method. To use one of the identified network interface cards to access the industrial network, it is necessary to «set» this interface. The following code shows how to assign one of the identified network interfaces for API operations. In this example, the code selects to use the first network interface card identified in the previous example. Network mynetwork = new Network(); List<String> interfaces = new List<String>(); Result retval = mynetwork.querynetworkinterfacecards(out interfaces); if (retval.succeeded) retval = mynetwork.setcurrentnetworkinterface(interfaces[0]); if (retval.succeeded) // // The action succeeded. Continue with operations. // CurrentNetworkInterface property This property is provided to query for the currently-selected network interface. This property is read-only. The following example shows how to use this property. Network mynetwork = new Network(); string currentinterface = mynetwork.currentnetworkinterface; Note This property returns an empty string if no network interface was selected by a previous call to the SetCurrentNetworkInterface method. 136 Manual, V3.1, 10/2017, A5E AF
137 SIMATIC Automation Tool API for.net framework 7.8 Network class ScanNetworkDevices method Return type Result Method name ScanNetworkDevices Parameters Name Data type Parameter type Description strfile IProfinetDeviceCollection Out A collection containing an IProfinetDevice element for each accessible device on the industrial network. Once a network interface is selected, it is possible to query for the devices on the industrial network. The ScanNetworkDevices method outputs a collection of items, where each item represents a device connected directly to the industrial Ethernet network. These devices may include CPUs, local modules, decentralized IO stations, HMI, and other devices. The following example creates a collection of all accessible devices on the selected network interface. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) // // The action succeeded. Continue with operations. // This method outputs an IProfinetDeviceCollection. This class is discussed in the next chapter. Note SIMATIC Automation Tool software license required for ScanNetworkDevices method. If no SIMATIC Automation Tool software license is found at runtime, then the ScanNetworkDevices method returns an empty collection. No device information is reported to the calling application. Manual, V3.1, 10/2017, A5E AF 137
138 SIMATIC Automation Tool API for.net framework 7.8 Network class SetCommunicationsTimeout method Return type Result Method name SetCommunicationsTimeout Parameters Name Data type Parameter type Description ntimeout uint Out A collection containing an IProfinetDevice element for each accessible device on the industrial network. You can set a time limit on the called operations. SetCommunicationsTimeout allows you to specify a time limit in seconds from 180 to 999 seconds. Any value outside of this range results in a failure of the operation. The following example shows how to use the method to set a time limit on ScanNetworkDevices operations. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = Network.SetCommunicationsTimeout(180); //Timeout in 3 minutes retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) // // The action succeeded. Continue with operations. // Manual, V3.1, 10/2017, A5E AF
139 SIMATIC Automation Tool API for.net framework 7.8 Network class GetCommunicationsTimeout method Return type uint Method name GetCommunicationsTimeout After the value of the communications timeout has been set, you can retrieve the timeout value with the GetCommunicationsTimeout call. This method returns the current timeout value. The following example shows how to retrieve the current timeout value and set a new timeout value of 180 seconds, if the current timeout value is greater than 180 seconds. uint timeout = Network.GetCommunicationsTimeout(); if (timeout > 180) Result retval = Network.SetCommunicationsTimeout(180); CheckValidLicense method Return type Result Method name CheckValidLicense A valid license is required to use the API. The CheckValidLicense method can be called to determine if a valid license exists. The following example shows the use of the CheckValidLicense method. Result result = Network.CheckValidLicense(); if (result.succeeded) // // A valid license // Else // // No valid license // Manual, V3.1, 10/2017, A5E AF 139
140 SIMATIC Automation Tool API for.net framework 7.8 Network class GetEmptyCollection method Return type IProfinetDeviceCollection Method name GetEmptyCollection IProfinetDeviceCollection is an interface and cannot be instantiated. You can open a project or perform an import without doing a scan. Call this method to return an empty collection. The following example shows how to use the method GetEmptyCollection. IProfinetDeviceCollection collection = Network.GetEmptyCollection(); MemoryStream stream = new MemoryStream(); Result result = collection.writetostream(stream); if (result.succeeded) // // Collection was serialized successfully // Manual, V3.1, 10/2017, A5E AF
141 SIMATIC Automation Tool API for.net framework 7.9 IProfinetDeviceCollection class 7.9 IProfinetDeviceCollection class Iterating items in the collection Iterating items in the collection The ScanNetworkDevices method outputs an object of type IProfinetDeviceCollection. This class provides the ability to iterate the items in the collection in multiple ways. It also provides methods to filter the items in the collection based on certain criteria. The following sections describe the functionality available for the collection. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) for (int deviceidx = 0; deviceidx < scanneddevices.count; deviceidx++) // // Each item in the collection is an IProfinetDevice. // This interface is described in detail in the next section // IProfinetDevice dev = scanneddevices[deviceidx]; The collection also supports iteration using the foreach syntax. The following example shows the same collection iterated using this syntax: Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) foreach (IProfinetDevice dev in scanneddevices) // // The variable «dev» now represents the next item in the collection // Manual, V3.1, 10/2017, A5E AF 141
142 SIMATIC Automation Tool API for.net framework 7.9 IProfinetDeviceCollection class GetEnumerator method Return type IEnumerator<IProfinetDevice > Method name GetEnumerator Parameters Name Data type Parameter type Description None This method is used to enumerate all IProfinetDevices in the IProfinetDeviceCollection Count property Return type int Property name Count This property returns the count of the number of IProfinetDevices in the IProfinetDeviceCollection [ ] property Return type Property name IProfinetDevice this[int index] This property returns the IProfinetDevice at a specific index. See example below. IProfinetDeviceCollection collection = Network.GetEmptyCollection(); MemoryStream stream = new MemoryStream(); Result result = collection.writetostream(stream); if (retval.succeeded) // // Collection was serialized successfully // IProfinetDevice device = collection[0]; 142 Manual, V3.1, 10/2017, A5E AF
143 SIMATIC Automation Tool API for.net framework 7.9 IProfinetDeviceCollection class Filtering items in the collection Collection items The collection will contain an item for each device on the industrial Ethernet network. The collection can contain devices from different multiple product families (for example, S7-1200, S7-1500, ET200S). The collection can also contain different «categories» of devices (for example, CPUs or IO stations). For different categories of devices, specific operations are available. So it may be useful at times to filter the collection to include only certain devices FilterByDeviceFamily method Return type List<IProfinetDevice> Method name FilterByDeviceFamily Parameters Name Data type Parameter type Description Familiestoinclude List<DeviceFamily> Int Families to include This method returns a collection that includes only devices of the specified product families. The filter is first constructed as a list of one or more device families. For example, this declaration creates a filter for only S and S devices. Pass this filter to the FilterByDeviceFamily method. The result is an IProfinetDeviceCollection that contains only the devices of the specified product families. Network mynetwork = new Network(); List<DeviceFamily> fams = new List<DeviceFamily> DeviceFamily.CPU1200, DeviceFamily.CPU1500 ; IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); List<IProfinetDevice> onlyplus = scanneddevices.filterbydevicefamily(fams); The resulting collection can then be iterated to perform actions only on the included devices. Note Passing an empty List<DeviceFamily> will result in the return of an empty collection. Manual, V3.1, 10/2017, A5E AF 143
144 SIMATIC Automation Tool API for.net framework 7.9 IProfinetDeviceCollection class FilterOnlyCPUs method Return type List<ICPU> Method name FilterOnlyCPUs The SIMATIC Automation Tool API supports many operations that are only allowed for CPUs. For this reason, it is useful to filter the collection to include only the CPUs discovered on the network. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); List<ICPU> cpus = scanneddevices.filteronlycpus(); foreach (ICPU cpu in cpus) // // Iterate through the list that only includes CPU devices // This method returns a list of ICPU. Additional API operations are supported for CPU devices. The ICPU interface provides these operations. The ICPU interface is described in detail in the ICPU interface (Page 172) chapter. 144 Manual, V3.1, 10/2017, A5E AF
145 SIMATIC Automation Tool API for.net framework 7.9 IProfinetDeviceCollection class Finding a specific device in the collection FindDeviceByIP method You can search for a specific device in the collection. Return type IProfinetDevice Method name FindDeviceByIP Parameters Name Data type Parameter type Description ip uint In The IP address to search for The following example shows searching for a device at a specified IP address. If the device is not found in the collection, a NULL reference is returned. Network mynetwork = new Network(); uint targetipaddress = 0xC0A80001; // IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (!retval.succeeded) return; IProfinetDevice dev = scanneddevices.finddevicebyip(targetipaddress); if (dev!= null) // Found it Manual, V3.1, 10/2017, A5E AF 145
146 SIMATIC Automation Tool API for.net framework 7.9 IProfinetDeviceCollection class FindDeviceByMAC method The FindDeviceByMAC method can search for a device with a specific MAC address. Return type IProfinetDevice Method name FindDeviceByMAC Parameters Name Data type Parameter type Description mac ulong In The MAC address to search for The following example searches for a device at a specified MAC address. If the device is not found in the collection, a NULL reference is returned. ulong targetmac = 0x ; // equivalent to string 11:22:33:44:55:66 Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (!retval.succeeded) return; IProfinetDevice dev = scanneddevices.finddevicebymac(targetmac); if (dev!= null) // Found it 146 Manual, V3.1, 10/2017, A5E AF
147 SIMATIC Automation Tool API for.net framework 7.9 IProfinetDeviceCollection class Serialization Transferring a collection to/from an external data file The following methods are provided to enable serializing and transfer of a collection’s contents to/from an external data file. These methods are used by the SIMATIC Automation Tool application to support user project files WriteToStream method Return type Result Method name WriteToStream Parameters Name Data type Parameter type Description stream Stream In The destination for serialized output of the collection. This method is used to externally store the contents of the collection. The following example shows the usage of this method: Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (!retval.succeeded) return; FileStream f = File.Create(«myDataFile.SAT»); retval = scanneddevices.writetostream(f); f.close(); This method internally serializes version information, to support forward compatibility of saved data. Manual, V3.1, 10/2017, A5E AF 147
148 SIMATIC Automation Tool API for.net framework 7.9 IProfinetDeviceCollection class ReadFromStream method The ReadFromStream method is used to create the collection from a previously created serialization file. The following example shows how to use this method: Return type Result Method name ReadFromStream Parameters Name Data type Parameter type Description stream Stream In The source for de-serializing the collection This method is used to create the collection from a previously created serialization file. The following example shows the usage of this method: IProfinetDeviceCollection devices = Network.GetEmptyCollection(); FileStream f = File.OpenRead(«myDataFile.SAT»); Result retval = devices.readfromstream(f); f.close(); Manually adding items to the collection Depending on the physical topology of the industrial network, devices may exist on the network that cannot respond to a DCP command (such as those used by the ScanNetworkDevices method), but that can be accessed by IP address. For this scenario, methods are provided to allow you to manually add a device to the collection based on its address. 148 Manual, V3.1, 10/2017, A5E AF
149 SIMATIC Automation Tool API for.net framework 7.9 IProfinetDeviceCollection class InsertDeviceByIP method Return type Result Method name InsertDeviceByIp Parameters Name Data type Parameter type Description index int In Location in the collection to insert the value ip uint In The IP address of the device to add to the collection. The following code scans the network, and then manually adds a device, at a specific IP address, at the specified index. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (!retval.succeeded) return; UInt32 missingdeviceipaddress = 0xC0A80001; // Int32 index = 0; retval = scanneddevices.insertdevicebyip(index, missingdeviceipaddress); Manual, V3.1, 10/2017, A5E AF 149
150 SIMATIC Automation Tool API for.net framework 7.9 IProfinetDeviceCollection class InsertDeviceByMAC method Return type Result Method name InsertDeviceByMAC Parameters Name Data type Parameter type Description index int In Location in the collection to insert the value mac ulong In The MAC Address of the device to add to the collection. The following code scans the network, and then manually adds a device at a specified MAC address at the specified index. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (!retval.succeeded) return; UInt64 targetmac = 0x ; // equivalent to string 11:22:33:44:55:66 Int32 index = 0; retval = scanneddevices.insertdevicebymac(index, targetmac); 150 Manual, V3.1, 10/2017, A5E AF
151 SIMATIC Automation Tool API for.net framework 7.9 IProfinetDeviceCollection class Copying data from a collection CopyUserData method You may find a situation where maintaining the options set on the current IProfinetDeviceCollection may become necessary. Instead of having the user re-enter this information, the following method is provided by the API. Return type Result Method name CopyUserData Parameters Name Data type Parameter type Description oldnetwork IProfinetDeviceCollection In Previous list used in the application The following code copies user entered data from one network scan to another scan. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (!retval.succeeded) return; IProfinetDeviceCollection rescanneddevices; retval = mynetwork.scannetworkdevices(out rescanneddevices); if (!retval.succeeded) return; retval = rescanneddevices.copyuserdata(scanneddevices); if (!retval.succeeded) return; Manual, V3.1, 10/2017, A5E AF 151
152 SIMATIC Automation Tool API for.net framework 7.9 IProfinetDeviceCollection class Removing devices from the collection Clear method Return type void Method name Clear Parameters Name Data type Parameter type Description None This method is used to clear the contents of the scanned devices Remove method Return type void Method name Remove Parameters Name Data type Parameter type Description device IProfinetDevice In Device to remove from the list This method is used to delete a specific item from the collection. 152 Manual, V3.1, 10/2017, A5E AF
153 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface 7.10 IProfinetDevice interface IProfinetDevice properties Each item in the IProfinetDeviceCollection collection is represented by the IProfinetDevice interface. This interface provides access to the data and operations that are common to all devices directly connected to the industrial network. The IProfinetDevice interface supports the following properties which provide information about the network device. These properties are all read-only. To ensure they will return the current information, your code should first call the RefreshStatus method on the device. Property name Return type Description ArticleNumber string get; The order number for the module. This is also known as MLFB or «article number». Comment string get;set; This allows the user to specify a comment for the device and is used in the SIMATIC Automation Tool user interface. The comment is not relevant for API operations. Configured bool get; True when the device has a valid configuration DefaultGateway uint get; The default gateway address of the device, represented as an unsigned integer. The encoded gateway address uses one byte to represent each decimal value in the address. For example, the encoded value 0xC0A80001 is equivalent to the more common string representation of DefaultGatewayString string get; The default gateway address of the device, represented as a string in the form «xx.xx.xx.xx» (i.e. » «) Description string get; A description of the hardware item, based on the article number. This is the same description that the user would see in TIA Portal. (i.e. «CPU-1215 DC/DC/DC») DeviceFound bool get; Was the device found on the network scan? DuplicateIP bool get; Does the device have an IP address that is a duplicate? Manual, V3.1, 10/2017, A5E AF 153
154 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface Property name Return type Description DuplicateProfinetName bool get; Does the device have a PROFINET Name that is a duplicate? Failsafe bool get; Based on its ArticleNumber, Is this a failsafe device? Family DeviceFamily get; What is the family of the device? For more information refer to the description of the DeviceFamily enum. FirmwareUpdateAllowed bool get; Does this device support firmware update? FirmwareVersion string get; The current firmware version of the device ID uint get; The unique identifier for every device and module in the station. This is used as the unique identifier when executing a FirmwareUpdate. HardwareNumber short get; The hardware version or «F- Stand» for the device. (Functional State) IP uint get; The IP Address of the device, represented as an unsigned integer. The encoded IP Address uses one byte to represent each decimal value in the IP Address. For example, the encoded value 0xC0A80001 is equivalent to the more common string representation of » » NOTE: SIMATIC Automation Tool V3.1 supports only IPv4 addresses. Ipv6 addressing is not supported. IPString string get; The IP Address of the device, represented as a string in the form «xx.xx.xx.xx» (i.e ) MAC ulong get; The unique MAC assigned to the device. The encoded MAC address uses one byte to encode each of the 6 octets defined for the address. For example, the encoded MAC address 0x is equivalent to the more common string representation of 11:22:33:44:55: Manual, V3.1, 10/2017, A5E AF
155 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface Property name Return type Description MACString string get; The unique MAC assigned to the device, represented as a string in the form 11:22:33:44:55:66. Modules IModuleCollection get; A collection of the modules plugged on the station. This property is described in detail here. Name string get; The name of the device. NewFirmwareFile string get; Location of the firmware file to be used in firmware update NewFirmwareNameErrorCode Result get; ErrorCode attached to new Firmware name NewFirmwareNameIsValid bool get; Is the set Firmware file valid? NewFirmwareVersion string get; This property is used in the SIMATIC Automation Tool user interface. It is not relevant for API operations. NewDefaultGateway String get; This property is used in the SIMATIC Automation Tool user interface. It is not relevant for API operations. NewIP String get;set; This property is used in the SIMATIC Automation Tool user interface. It is not relevant for API operations. NewProfinetName Stringget;set; This property is used in the SIMATIC Automation Tool user interface. It is not relevant for API operations. NewProgramName String get;set; This property is used in the SIMATIC Automation Tool user interface. It is not relevant for API operations. NewRestoreName Stringget;set; This property is used in the SIMATIC Automation Tool user interface. It is not relevant for API operations. ProfinetName String get; The Profinet name for the device. ResetToFactoryAllowed bool get; Is ResetToFactory allowed on the device? Selected bool get;set; Marks the device as selected to enable operations to be performed SerialNumber string get; The unique serial number for the device Slot uint get; The slot number for the hardware item Manual, V3.1, 10/2017, A5E AF 155
156 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface Property name Return type Description SlotName string get; This property is used in the SIMATIC Automation Tool user interface. It is not relevant for API operations. StationNumber uint get; The station number of the device. SubSlot uint get; The subslot of the device. This is relevant for pluggable submodules such as S SB modules. Supported bool get; True when the MLFB number exits in the database and the device is supported by current SIMATIC Automation Tool API. SubnetMask uint get; The subnet mask of the device, represented as an unsigned integer. The encoded subnet mask uses one byte to represent each decimal value in the address. For example, the encoded value 0xFFFFFF00 is equivalent to the more common string representation of SubnetMaskString string get; The subnet mask of the device, represented as a string in the form «xx.xx.xx.xx» (i.e ) See also DeviceFamily (Page 228) Modules property and IModuleCollection class (Page 170) 156 Manual, V3.1, 10/2017, A5E AF
157 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface IProfinetDevice methods RefreshStatus method Return type Result Method name RefreshStatus When the IProfinetDeviceCollection collection is created by calling the ScanNetworkDevices method, only a minimal amount of information is learned about each device. To get all the available information for the device, it is necessary to call the RefreshStatus method. This method makes a connection to the device, queries for various information, and then disconnects from the device. The following code will call RefreshStatus for each device on the network. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) foreach (IProfinetDevice dev in scanneddevices) retval = dev.refreshstatus(); if (retval.succeeded) // // Operation successful and the data can be trusted // The RefreshStatus method connects to the device to read information. The device may be password-protected against such access. Therefore, this method (and all methods that internally connect with the device) requires a password parameter. The example shows the IProfinetDevice class. ICPU needs a password set on the device before calling the RefreshStatus method through the use of SetPassword(EncryptedString), to legitimatize the connection. See also EncryptedString class (Page 126) Manual, V3.1, 10/2017, A5E AF 157
158 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface FirmwareUpdate method Return type Result Method name FirmwareUpdate Parameters Name Data type Parameter type Description hardwareid uint In The hardware identifier of the module bupdatesameversion Bool In If true, the method will proceed with the update. The update proceeds if the update file is the same version as the current firmware version of the module. This method will update the firmware version for the specified hardware item (hardwareid) on the device. The hardwareid may specify either the device itself, or a module on the same rack. Some devices do not support the firmware update feature. Check the property FirmwareUpdateAllowed to ensure that the current device supports this feature. The following example searches for a device at a specific IP address and updates the firmware in that device. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); uint targetipaddress = 0xC0A80001; // string updatefile 221-1BF32-0XB0 V upd»; if (!retval.succeeded) return; IProfinetDevice dev = scanneddevices.finddevicebyip(targetipaddress); if (dev!= null) dev.selected = true; dev.setfirmwarefile(updatefile); retval = dev.firmwareupdate(dev.id, true); 158 Manual, V3.1, 10/2017, A5E AF
159 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface Using the FirmwareUpdate method, it is also possible to update the firmware for a module on a central station. The following code shows how to search for a CPU at a specific address and then searches the modules on that CPU for a specific article number. The firmware is then updated in modules that match the search criteria. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); uint targetipaddress = 0xC0A80001; // string targetmodule 221-1BF32-0XB0″; string updatefile 221-1BF32-0XB0 V upd»; if (!retval.succeeded) return; IProfinetDevice dev = scanneddevices.finddevicebyip(targetipaddress); if (dev!= null) retval = dev.refreshstatus(); if (!retval.succeeded) return; // // Search the modules on the CPU // IModuleCollection mods = dev.modules; foreach (IModule mod in mods) if (mod.articlenumber == targetmodule) mod.selected = true; mod.setfirmwarefile(updatefile); // // Update firmware for matching module(s) // dev.firmwareupdate(mod.id, true); Notice that the FirmwareUpdate method is called on the CPU. The hardwareid passed to the method indicates which module to update. Manual, V3.1, 10/2017, A5E AF 159
160 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface Note Classic and Plus firmware update files There are two different types of firmware update files. Classic firmware update folders contain several files that make up the firmware update. The header.upd or cpu_hd.upd in this folder is the file that is passed to the FirmwareUpdate method. The Plus firmware update file is a single update file. This is the file that is passed to the FirmwareUpdate method Identify method Return type Result Method name Identify This method flashes a device LED or HMI screen for a specific network device. The flashing light helps identify the physical location of the device. The following example flashes the LED or screen for the device that uses the IP address Network mynetwork = new Network(); uint targetipaddress = 0xC0A80001; // IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) // // Search for the device at that IP, and flash LED/HMI screen // IProfinetDevice dev = scanneddevices.finddevicebyip(targetipaddress); if (dev!= null) retval = dev.identify(); 160 Manual, V3.1, 10/2017, A5E AF
161 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface Reset method Return type Method name Result Reset This method is used to reset a PROFINET device to its factory settings. The following example calls the Reset method for a device at a specific IP address. Network mynetwork = new Network(); uint targetipaddress = 0xC0A80001; // IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) // // Search for device at that IP, and reset to factory default values // IProfinetDevice dev = scanneddevices.finddevicebyip(targetipaddress); if (dev!= null) retval = dev.reset(); Note This method cannot be used to reset a CPU. The ICPU interface supports a ResetToFactory method that is specific for CPUs. Manual, V3.1, 10/2017, A5E AF 161
162 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface SetIP method Return type Result Method name SetIP Parameters Name Data type Parameter type Description nip uint In New encoded IP address nsubnet uint In New encoded subnet address ngateway uint In New encoded gateway address This method is used to set or modify the IP address of a device. For this operation to be successful, the device port configuration must be set to the «IP address is set directly on the device» option. 162 Manual, V3.1, 10/2017, A5E AF
163 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface The following example searches for a device at a specified MAC address, and sets its IP address. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) // // Search for the device at that MAC, and Set IP // IProfinetDevice dev = scanneddevices.finddevicebymac(targetmacaddress); if (dev!= null) retval = dev.setip(0xc0a80001, 0xFFFFFF00, 0x0); Note The SetIP method expects the addresses to be in encoded format (as shown above). The addresses can be converted from string format to encoded uint using the following C# code: string userenteredaddress // For example // // Convert string address to uint // System.Net.IPAddress ip = IPAddress.Parse(userEnteredAddress); byte[] bytes = ip.getaddressbytes(); Array.Reverse(bytes); uint encodedip = BitConverter.ToUInt32(bytes, 0); // encoded IP address available for use Manual, V3.1, 10/2017, A5E AF 163
164 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface SetProfinetName method Return type Result Method name SetProfinetName Parameters Name Data type Parameter type Description strname String In New name for the PROFINET station This method is used to set (or modify) the PROFINET station name for the device. For this operation to be successful, the device port must be configured with the «PROFINET name is set directly on the device» option». Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) // // Search for the device at that MAC, and Set PROFINET Name // IProfinetDevice dev = scanneddevices.finddevicebymac(targetmacaddress); if (dev!= null) retval = dev.setprofinetname(«new name»); 164 Manual, V3.1, 10/2017, A5E AF
165 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface ValidateIPAddressSubnet method Return type Result Method name ValidateIPAddressSubnet Parameters Name Data type Parameter type Description nip uint In IP Address nsubnetmask uint In Subnet Mask This method is used to validate a combination of IP and Subnet mask to verify that the pair is compatible. The following example searches for a device at given MAC address and validates that the IP address and subnet mask of the device are compatible. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) // // Search for the device at that MAC, and Set IP // IProfinetDevice dev = scanneddevices.finddevicebymac(targetmacaddress); if (dev!= null) retval = dev.validateipaddresssubnet(dev.ip, dev.subnetmask); Manual, V3.1, 10/2017, A5E AF 165
166 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface ValidatePROFINETName method Return type Result Method name ValidatePROFINETName Parameters Name Data type Parameter type Description strname string In PROFINET Name to validate This method uses a PROFINET name that you provide. The PROFINET name is tested for validity as a device PROFINET name. The following example searches for a device at given MAC address and validates that the given PROFINET Name is valid, before assigning it to the device. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) // // Search for the device at that MAC, and Set IP // IProfinetDevice dev = scanneddevices.finddevicebymac(targetmacaddress); if (dev!= null) string name = «ValidName»; retval = dev.validateprofinetname(name); if (retval.succeeded) retval = dev.setprofinetname(name); 166 Manual, V3.1, 10/2017, A5E AF
167 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface IProfinetDevice events DataChanged event The DataChanged event is supported on the IProfinetDevice interface. This event allows the program to monitor whether changes have occurred to a given device on the network, due to other operations through the API. For example, if the program keeps a reference to a specific IProfinetDevice, it is possible to «listen» for certain changes to the device. In the following example, the code attaches to the DataChanged event for every device on the network. private void AttachEvents(IProfinetDeviceCollection devices) foreach (IProfinetDevice dev in devices) dev.datachanged += new DataChangedEventHandler(Dev_DataChanged); private void Dev_DataChanged(object sender, DataChangedEventArgs e) if (e.type == DataChangedType.OperatingState) // The mode changed for this device // Now, when any actions by the API cause a device to change operating mode, the method Dev_DataChanged is called. Note The DataChanged event does not actively monitor the live network, but monitors the properties of the IProfinetDevice. The state of this object must change in order to trigger the event. The DataChangedEventArgs class The DataChanged event handler will be passed a DataChangedEventArgs object. As shown in the above example, this class has a single property (Type) of type DataChangedType. See also DataChangedType enumeration (Page 228) Manual, V3.1, 10/2017, A5E AF 167
168 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface ProgressChanged event The ProgressChanged event is supported on the IProfinetDevice interface. This event allows the program to monitor the progress of methods that take a long time. FirmwareUpdate is one example of such a method. To utilize the event, an event handler is attached to the event. The event handler is called when there is a change in the progress of the operation. The following example shows how you can monitor execution progress. This example shows a method that updates the firmware for a device on the network. This operation may take noticeable time. To monitor the progress of the action, an event handler is defined and attached to the ProgressChanged event. Once the firmware update is complete, the event handler is detached from the event. private void UpdateCpuAtAddress(IProfinetDeviceCollection devices,uint targetipaddress, string updatefile) IProfinetDevice dev = devices.finddevicebyip(targetipaddress); if (dev!= null) dev.progresschanged += new ProgressChangedEventHandler(Dev_ProgressChanged); dev.setfirmwarefile(updatefile); dev.firmwareupdate(dev.id, true); dev.progresschanged -= new ProgressChangedEventHandler(Dev_ProgressChanged); private void Dev_ProgressChanged(object sender, ProgressChangedEventArgs e) IProfinetDevice device = sender as IProfinetDevice; double percent = 0; if (device!= null) if (e.count!= 0) string spercent = e.index.tostring() + » %»; 168 Manual, V3.1, 10/2017, A5E AF
169 SIMATIC Automation Tool API for.net framework 7.10 IProfinetDevice interface The ProgressChangedEventArgs class The ProgressChanged event handler is passed a ProgressChangedEventArgs object. This object has the following properties: Property Name Return Type Description Action ProgressAction A description of the current action. See also ProgressAction enumeration (Page 234) Cancel bool Was the action canceled? Count int The total amount of data to transfer ID uint The hardware ID Index int The current amount of data transferred Manual, V3.1, 10/2017, A5E AF 169
170 SIMATIC Automation Tool API for.net framework 7.11 IModuleCollection class and module properties 7.11 IModuleCollection class and module properties Modules property and IModuleCollection class The IProfinetDevice interface provides information about any modules (for example, signal modules, signal boards, CMs, CPs) plugged on the station. The Modules property returns a collection of these modules. The following code shows accessing this information, given an IProfinetDevice (created in our earlier example). Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) // // To ensure the information is current and complete, // first call RefreshStatus() // retval = scanneddevices[0].refreshstatus(); if (retval.succeeded) // // The Modules property returns a collection of IModule // IModuleCollection modules = scanneddevices[0].modules; foreach (IModule mod in modules) // // Get article number for every module on the station // string displayarticlenum = mod.articlenumber; 170 Manual, V3.1, 10/2017, A5E AF
171 SIMATIC Automation Tool API for.net framework 7.11 IModuleCollection class and module properties IModule interface Each module on the station is represented as an IModule interface. This interface provides a subset of the properties available for a device. The IModule interface provides no methods. All operations on a module must be initiated at the device. The IModule interface supports the following properties. Property Name Return Type Description ArticleNumber string The order number for the module. This is also known as MLFB or «article number». Comment string This allows the user to specify a comment for the device and is used in the SIMATIC Automation Tool user interface. The comment is not relevant for API operations. Configured bool True when the device has a valid configuration Description string A description of the hardware item, based on the article number. This is the same description that the user would see in TIA Portal. (i.e. «CPU-1215 DC/DC/DC») Failsafe bool Based on its ArticleNumber, Is this a failsafe device? FirmwareUpdateAllowed bool Does this device support firmware update? FirmwareVersion string The current firmware version of the device ID uint The unique identifier for every device and module in the station. This is used as the unique identifier when executing a FirmwareUpdate. Name string The name of the device. NewFirmwareNameErrorCode Result ErrorCode attached to new Firmware name NewFirmwareNameIs- Valid bool True when the firmware file is valid for this device or module. FirmwareVersion string This property is used in the SIMATIC Automation Tool user interface. It is not relevant for API operations. Selected bool Is the device currently selected? This is the checkbox state in the GUI. SerialNumber string The unique serial number for the device. Slot uint The slot number for the hardware item. SlotName string This property is used in the SIMATIC Automation Tool user interface. It is not relevant for API operations. StationNumber uint The station number of the device. SubSlot uint The subslot of the device. This is relevant for pluggable submodules such as S SB modules. Supported FeatureSupport Is the detected network device supported by current SIMATIC Automation Tool operations? Manual, V3.1, 10/2017, A5E AF 171
172 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface 7.12 ICPU interface Identifying CPU devices in an IProfinetDeviceCollection As discussed earlier, the ScanNetworkDevices method is called to generate an IProfinetDeviceCollection. This collection contains an item for every accessible device on the industrial network. These devices may include CPUs and decentralized I/O stations. The IProfinetDevice interface provides properties and methods that are applicable to all categories of devices. However, there are properties and methods that are specific to a CPU device. These properties and methods are accessible using the ICPU interface. To determine if a given IProfinetDevice interface actually represents a CPU device, simply cast it to an ICPU. If this cast is successful, then the network device is a CPU, and the properties/methods on the ICPU interface can be used. The following example illustrates this. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) foreach (IProfinetDevice dev in scanneddevices) ICPU devascpu = dev as ICPU; if (devascpu!= null) // // The device is a CPU. // The ICPU interface can be used to interact with it. // Note The ICPU interface inherits from IProfinetDevice. Therefore all the properties and methods supported on IProfinetDevice are also supported on ICPU. Note New, for the API V3.1 ICPU interface, is the requirement for setting the Selected and SelectedConfirmed flags, before you can perform operations on the devices through the API. Selected is required for all functions belonging to the ICPU interface while you must set the SelectedConfirmed, if the ICPU represents a safety operation. The safety-relevant operations are Program Update, Format Memory Card, Reset to Factory and Restore. 172 Manual, V3.1, 10/2017, A5E AF
173 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface ICPU properties The ICPU interface extends IProfinetDevice by adding the following properties. These properties are read-only. To ensure they will return the current information, your code should first call the RefreshStatus method. Property name Return type Description RemoteInterfaces List<IRemoteInterface > A list of any remote I/O interfaces configured for the CPU. The usage of this property is described in a later section of this document. DataLogFolder IRemoteFolder Information about any Data Logs found on the SIMATIC Memory Card of the CPU RecipeFolder IRemoteFolder Information about any Recipes found on the SIMATIC Memory Card of the CPU OperatingMode OperatingState Designates the current mode of the CPU. This value is read-only IdentityCrisis bool True when the identity of the device cannot be determined. LastRefreshSuccessful True when the last call to RefreshStatus com- bool pleted successfully. SelectedConfirmed bool Methods that perform safety-relevant operations must set the SelectedConfirmed Flag to TRUE, when the user reselects one or more devices from a confirmation dialog for the operation and confirms the operation. SelectedConfirmed means that the operation is selected and confirmed. Initialized bool True when the device or module has a valid configuration. InterfaceNumber int The interface that the device is connected through Password EncryptedString CPU Password used in functions performed on the device PasswordProtection- Level ProtectionLevel The protection level of a legitimized CPU password Protected bool Is the CPU currently password protected. This means a password is required to access some or all features depending on access level. PasswordValid bool Is the call to SetPassword() valid? See also RemoteInterfaces property (Page 211) Manual, V3.1, 10/2017, A5E AF 173
174 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface ICPU flags Program Update flags To successfully perform safety-relevant functions on a device, more information is needed from the device. The following flags have been added to ensure that the Program Update function can be performed on a safety device correctly and securely. Property name Return type Description NewProgramNamePassword EncryptedString CPU Password used to attempt a connection after Program Update has finished. Value is set through the use of SetProgram- Password(EncryptedString) HasSafetyProgram bool Boolean value set if the device has a Safety program present on the device. This is determined when connecting to a CPU. NewProgramNameIsValid bool True when the method SetProgramFolder is called with a valid program. NewProgramNameIsSafety bool True when the method SetProgramFolder is called with a valid a safety program NewProgramNameHasSafetyPassword NewProgramNamePassword- IsValid bool bool bool True when the method SetProgramFolder is called with a valid a safety program. False if a standard program is opened. True when the method SetProgramPassword is called with a valid password. True when the method SetProgramPassword is called with a valid password and the password for the new program have a safety F-CPU password. ProgramUpdateSucceeded bool True when the method ProgramUpdate method succeeds. The program update may still return an error. NewProgramNamePasswordIsSafety NewProgramNamePassword- Present NewProgramNamePasswordLevel bool True when the method SetProgramFolder is called and the program is password protected. ProtectionLevel What is the protection level of the CPU password for the new program? NewProgramName string What is the name of the new program? NewProgramFolder string What is the folder location for the new program? Value is set through the SetProgramFolder method NewProgramNameFSignature uint What is the FSignature of the new project? Used in the comparison process to determine if ProgramUpdate finished successfully NewProgramNameIP uint IP address that is stored in the new program NewProgramNameSubnetMask uint Subnet mask of the device in the new program NewProgramNameGateway uint Gateway of the device in the new program 174 Manual, V3.1, 10/2017, A5E AF
175 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface Property name Return type Description NewProgramNameErrorCode Result Accessible way to find issues that may be present in validating the new program, such as if the program is invalid for the device or if the IP found in the program already exists on the network NewProgramNamePasswordError- Code Result Stores the error code of the last call to SetProgramPassword Restore flags To successfully perform safety-relevant functions on a device, more information is needed from the device. The following flags are added to the version 3.1 API, so that the Restore from Backup function can be performed on a safety device correctly and securely. Due to the differences between the formatting of the program file and the restore file, not all information present for Program Update can be retrieved from backup file data. Property name Return type Description NewRestoreNamePassword EncryptedString CPU Password used to attempt connection after Restore has finished. Value is set through the use of SetBackup- FilePassword(EncryptedString) NewRestoreNameIsValid bool True when the method SetBackupFile is called and the restore file is valid NewRestoreNameIsSafety bool True when the method SetBackupFile is called and the restore file is a safety restore file NewRestoreNamePassword- IsValid NewRestoreNamePasswordIsSafety bool bool True when the call SetBackupFilePassword contains a valid password. True when the call SetBackupFilePassword contains a valid safety password. RestoreSucceeded bool Did the Restore operation succeed? NewRestoreName string What is the name of the new program? NewRestoreFile string What is the file location for the new program? Value is set through the SetbackupFile method NewRestoreNameFSignature uint What is the FSignature of the new project? Used in the comparison process to determine if Restore finished successfully NewRestoreNameErrorCode Result Accessible way to find issues that may be present in validating the new program, such as if the program is invalid or incompatible with the device Manual, V3.1, 10/2017, A5E AF 175
176 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface Feature flags In the SIMATIC Automation Tool V3.0 API release, flags identifying if certain features were permitted on a device are found at the IProfinetDevice level. The V3.1 API moved these flags up to the ICPU and IHMI levels. The return type of these flags has changed from FeatureTypes to bool values. Property name Return type Description ChangeModeAllowed bool TRUE if the CPU supports a mode change operation? (RUN and STOP) BackupAllowed bool TRUE if the CPU supports Backup operation. MemoryResetAllowed bool TRUE if the CPU supports reset to factory operation. ProgramUpdateAllowed bool TRUE if the CPU supports ProgramUpdate operation RestoreAllowed bool TRUE if the CPU supports restore operation. FormatMCAllowed bool TRUE if the CPU supports format memory card operation. PasswordAllowed bool TRUE if the CPU supports a password. RemoteRecipesAllowed bool TRUE if the CPU supports recipe operations. RemoteDataLogsAllowed bool TRUE if the CPU supports data log operations. ServiceDataAllowed bool TRUE if the CPU supports service data upload operation. SetTimeAllowed bool TRUE if the CPU supports set and read time operation. DiagBufferAllowed bool TRUE if the CPU supports diagnostic buffer operation. 176 Manual, V3.1, 10/2017, A5E AF
177 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface ICPU methods Protected CPUs and passwords The following methods are provided on the ICPU interface. Most actions on the ICPU interface require a legitimized connection to the CPU. This may require a password. For this reason, most of the methods on the ICPU interface require a password parameter SetPassword method Return type Result Method name SetPassword Parameters Name Data type Parameter type Description password EncryptedString In Sets the CPU password for the object that is used to perform operations Previously the CPU password parameter was handled by being passed along with the method call on the object. SIMATIC Automation Tool V3.1 changes this by allowing you to set the CPU password for the object instead of sending the CPU password each time with the parameters of a method. The following example shows how to set the CPU password on a device. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) // // Search for the device at that MAC, and SetPassword // ICPU dev = scanneddevices.finddevicebymac(targetmacaddress) as ICPU; if (dev!= null) if (dev.protected) retval = dev.setpassword(new EncryptedString(«Password»)); Manual, V3.1, 10/2017, A5E AF 177
178 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface SetProgramFolder method Return type Result Method name SetProgramFolder Parameters Name Data type Parameter type Description strfolder string In Sets the folder location for the downloaded program Previously, the folder path parameter for Program Update was handled by being passed along with the method call on the object. SIMATIC Automation Tool V3.1 changes this by allowing for the user to set the location of the folder on the device. The method sets the following flags on the ICPU object. NewProgramFolder NewProgramName NewProgramNameIP NewProgramNameSubnetMask NewProgramNameGateway NewProgramNameIsValid When the operation is performed on a safety object, you have the option for setting the following: NewProgramNameIsSafety NewProgramNameHasSafetyPassword 178 Manual, V3.1, 10/2017, A5E AF
179 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface The following example shows how to set the program folder on a device. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) // // Search for the device at that MAC, and SetProgramFolder // ICPU dev = scanneddevices.finddevicebymac(targetmacaddress) as ICPU; if (dev!= null) retval = dev.setprogramfolder(@»c:myfolder»); if (retval.error == ErrorCode.ProgramPasswordNeeded) retval = dev.setpassword(new EncryptedString(«Password»)); Note If the selected program has a password, then SetProgramFolder returns a failure. You must call the SetProgramPassword method and return successfully before you can call the ProgramUpdate method SetProgramPassword method Return type Result Method name SetProgramPassword Parameters Name Data type Parameter type Description password EncryptedString In Sets the CPU password for the project that is to be passed to CPU during ProgramUpdate. After you perform a ProgramUpdate, the application attempts to reconnect to the device. If the program placed on the CPU is password protected, than setting the updated CPU password correctly allows you to regain access to the device, without the need to set another CPU password. Manual, V3.1, 10/2017, A5E AF 179
180 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface The method sets the following flags on the ICPU object: NewProgramNamePasswordIsValid NewProgramNamePasswordIsSafety NewProgramNamePasswordLevel The following example shows how to set an updated CPU password on a device. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) // // Search for the device at that MAC, and SetProgramFolder // ICPU dev = scanneddevices.finddevicebymac(targetmacaddress) as ICPU; if (dev!= null) retval = dev.setprogramfolder(@»c:myfolder»); if (retval.error == ErrorCode.ProgramPasswordNeeded) retval = dev.setpassword(new EncryptedString(«Password»)); ProgramUpdate method Return type Result Method name ProgramUpdate This method performs a program update on the CPU. The following preconditions must be met in order to perform the operation: The device must be selected If the device is a Fail-Safe device, SelectedConfirmed must be true The NewProgramFolder for the object must be set If the new program contains a CPU password, then the NewProgramPasswordPresent must be true and have the value set through SetProgramPassword Program Update must be supported by the device (ProgramUdpateAllowed) 180 Manual, V3.1, 10/2017, A5E AF
181 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface The following example searches the IProfinetDeviceCollection for a CPU at a specific IP address, and updates the program for that CPU. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) ICPU cpu = scanneddevices.finddevicebymac(targetmacaddress) as ICPU; if (cpu!= null && cpu.programupdateallowed == true) // Select cpu to update cpu.selected = true; retval = cpu.setprogramfolder(@»c:myfolder»); if (retval.error == ErrorCode.ProgramPasswordNeeded) retval = cpu.setprogrampassword(new EncryptedString(«Password»)); if (retval.failed == true) return; if (retval.failed == true) return; // Unique IP Address? if (cpu.duplicateip == true) return; // Is the device supported? if (cpu.supported == false) return; // Is the device initialized? if (cpu.initialized == false) return; // Is the device failsafe? if (cpu.failsafe == true) ConfirmationType type = cpu.determineconfirmationmessage(failsafeoperation.programupdateoperation); // Verify type and confirm cpu.selectedconfirmed = true; // Check to make sure we can update if (cpu.hassafetyprogram == true cpu.protected == true cpu.newprogramnameissafety == true) // Is the device password protected? Manual, V3.1, 10/2017, A5E AF 181
182 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface if (cpu.protected == true) // Was a valid password supplied? if (cpu.passwordvalid == false) return; // Are we legitimized to the safety level? bool bsufficientaccess = cpu.passwordprotectionlevel == ProtectionLevel.Failsafe; if (bsufficientaccess == false) return; else // Is a safety program about to be loaded? if (cpu.newprogramnamehassafetypassword == true) return; // Is the device password protected? if (cpu.protected == true) // Was a valid password supplied? if (cpu.passwordvalid == false) return; // Do we have a sufficient legitimization level for the operation to succeed? bool bsufficientaccess = cpu.passwordprotectionlevel == ProtectionLevel.Failsafe cpu.passwordprotectionlevel == ProtectionLevel.Full; if (bsufficientaccess == false) return; // Perform a program update retval = cpu.programupdate(); // Reset cpu.selectedconfirmed = false; Note The folder name passed to the ProgramUpdate method should contain a folder called SIMATIC.S7S. The SIMATIC.S7S folder contains the program to download. 182 Manual, V3.1, 10/2017, A5E AF
183 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface SetBackupFile method Return type Result Method name SetBackupFile Parameters Name Data type Parameter type Description strfile string In Sets the location for a backup file Previously the file path parameter for Restore was handled by being passed along with the method call on the object. SIMATIC Automation Tool V3.1 changes this by allowing you to set the location of the folder on the PG/PC data storage device. The method sets the following flags on the ICPU object: NewRestoreName NewRestoreFile NewRestoreNameIsValid NewRestoreNameIsSafety NewRestorenameFSignature Manual, V3.1, 10/2017, A5E AF 183
184 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface The following example shows how to set the backup file path. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) ICPU cpu = scanneddevices.finddevicebymac(targetmacaddress) as ICPU; if (cpu!= null && cpu.restoreallowed == true) // Select cpu to update cpu.selected = true; retval = cpu.setbackupfile(@»c:myfolderbackup.s7pbkp»); if (retval.error == ErrorCode.ProgramPasswordNeeded) retval = cpu.setbackupfilepassword(new EncryptedString(«Password»)); if (retval.failed == true) return; if (retval.failed == true) return; // Unique IP Address? if (cpu.duplicateip == true) return; // Is the device supported? if (cpu.supported == false) return; // Is the device initialized? if (cpu.initialized == false) return; // Is the device failsafe? if (cpu.failsafe == true) ConfirmationType type = cpu.determineconfirmationmessage(failsafeoperation.restoreoperation); // Verify type and confirm cpu.selectedconfirmed = true; // Check to make sure we can update if (cpu.hassafetyprogram == true cpu.protected == true cpu.newrestorenameissafety == true) // Is the device password protected? 184 Manual, V3.1, 10/2017, A5E AF
185 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface if (cpu.protected == true) // Was a valid password supplied? if (cpu.passwordvalid == false) return; // Are we legitimized to the safety level? bool bsufficientaccess = cpu.passwordprotectionlevel == ProtectionLevel.Failsafe; if (bsufficientaccess == false) return; else // Is a safety program about to be loaded? if (cpu.newrestorenameissafety == true) return; // Is the device password protected? if (cpu.protected == true) // Was a valid password supplied? if (cpu.passwordvalid == false) return; // Do we have a sufficient legitimization level for the operation to succeed? bool bsufficientaccess = cpu.passwordprotectionlevel == ProtectionLevel.Failsafe cpu.passwordprotectionlevel == ProtectionLevel.Full; if (bsufficientaccess == false) return; // Perform a restore retval = cpu.restore(); // Reset cpu.selectedconfirmed = false; Note If the selected backup file has a CPU password, SetBackupFile returns with a failure. The SetBackupFilePassword method must be called and return successfully, before you can call the Restore method. Manual, V3.1, 10/2017, A5E AF 185
186 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface SetBackupFilePassword method Quintessence Return type Result Method name SetBackupFilePassword Parameters Name Data type Parameter type Description password EncryptedString In Sets the password for the project that is passed to CPU during restore. After you perform a Restore, the application will attempt to reconnect to the device. If the program loaded on the CPU is password protected, setting the updated CPU correctly lets the user regain access to the device, without the need to set another CPU password. The method sets the following flag on the ICPU object. NewRestoreNamePassword The following example shows how to set an updated CPU password on a device. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) // // Search for the device at that MAC, and SetBackupFilePassword // ICPU dev = scanneddevices.finddevicebymac(targetmacaddress) as ICPU; if (dev!= null) if (dev.protected) retval = dev.setbackupfile(@»c:myfolder»); retval = dev.setbackupfilepassword(new EncryptedString(«Password»)); 186 Manual, V3.1, 10/2017, A5E AF
187 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface Restore method (ICPU interface) Return type Result Method name Restore This method is used to restore the information from a previous backup of the CPU. Some CPUs do not support the backup/restore feature. The following preconditions must be met in order to perform the operation. The device must be selected. If the device is a failsafe device, SelectedConfirmed must be true. The NewProgramFolder for the object must be set. If the new program contains a CPU password, the NewProgramPasswordPresent must be true and have the value set through SetProgramPassword Restore must be supported to perform the action (RestoreAllowed) The following example searches the IProfinetDeviceCollection for a CPU at a specific IP address. When found, it checks that the password protected CPU supports the restore feature, then calls the Restore method on a Backup file that does not have a CPU password. Network mynetwork = new Network(); uint targetipaddress = 0xC0A80001; // string bkfile IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) IProfinetDevice dev = devices.finddevicebyip(targetipaddress); if (dev!= null) ICPU devascpu = dev as ICPU; if (devascpu!= null && devascpu.restoreallowed) retval = devascpu.setpassword(new EncryptedString(«Password»)); retval = devascpu.setbackupfile(bkfile); devascpu.selected = true; if (devascpu.failsafe) devascpu.selectedconfirmed = true; retval = devascpu.restore(); Manual, V3.1, 10/2017, A5E AF 187
188 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface Backup method (ICPU interface) Return type Result Method name Backup Parameters Name Data type Parameter type Description strfile string In A fully-qualified path and filename where the backup should be stored. This method is used to back up the data in a CPU. Some CPUs do not support the backup/restore feature. You can check the property BackupAllowed to ensure that the current CPU supports this feature. The following example searches the IProfinetDeviceCollection for a CPU at a specific IP address. When found it checks that the CPU supports the backup feature, and calls the Backup method. Network mynetwork = new Network(); uint targetipaddress = 0xC0A80001; // string bkfile IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) foreach (IProfinetDevice dev in devices) ICPU devascpu = dev as ICPU; if (devascpu!= null && devascpu.ip == targetipaddress && devascpu.backupallowed) devascpu.selected = true; retval = devascpu.backup(bkfile); 188 Manual, V3.1, 10/2017, A5E AF
189 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface DownloadRecipe method Return type Result Method name DownloadRecipe Parameters Name Data type Parameter type Description strfile string In The complete path and filename of the recipe file to download (transfer from PG/PC to CPU memory card). This method is used to add or replace a recipe.csv file on the CPU memory card. Some CPUs do not support remote recipe access. You can check the property RemoteRecipesAllowed to ensure that the current CPU supports this feature. The following code example shows writing a recipe to the CPU memory card. Network mynetwork = new Network(); uint targetipaddress = 0xC0A80001; // string rcpfile IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) foreach (IProfinetDevice dev in devices) ICPU devascpu = dev as ICPU; if ((devascpu!= null) && (devascpu.ip == targetipaddress) && (devascpu.remoterecipesallowed)) retval = devascpu.setpassword(new EncryptedString(«Password»)); IRemoteFolder recipes = devascpu.recipefolder; recipes.selected = true; recipes.setremotefile(rcpfile); retval = devascpu.downloadrecipe(rcpfile); Note If a recipe with the same name already exists on the CPU memory card, then it is replaced. Manual, V3.1, 10/2017, A5E AF 189
190 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface DeleteDataLog method Return type Result Method name DeleteDataLog Parameters Name Data type Parameter type Description strfilename string In Filename of Data Log file to delete, from a CPU memory card. This method is used to delete a Data Log file from a CPU s memory card. Some CPUs do not support remote Data Log access. Check the property RemoteDataLogsAllowed to ensure that the current CPU supports this feature. 190 Manual, V3.1, 10/2017, A5E AF
191 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface The following code example uses the DataLogFolder property to iterate all Data Logs on the CPU memory card. Each Data Log is deleted. Network mynetwork = new Network(); IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) foreach (IProfinetDevice dev in devices) ICPU devascpu = dev as ICPU; if (devascpu!= null) if (devascpu.remotedatalogsallowed) // // First check that data logs are available on the memory card // if (devascpu.datalogfolder.exists) devascpu.setpassword(new EncryptedString(«Password»)); // // Search for all data log files // for (Int32i=devAsCpu.DataLogFolder.Files.Count — 1; i>=0; i—) IRemoteFile datalog = devascpu.datalogfolder.files[i]; if (datalog!= null) datalog.selected = true; // // Delete the data log. // devascpu.deletedatalog(datalog.name); Manual, V3.1, 10/2017, A5E AF 191
192 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface DeleteRecipe method Return type Result Method name DeleteRecipe Parameters Name Data type Parameter type Description strfilename string In Filename of Recipe file to delete from a CPU memory card This method is used to delete a recipe file from a CPU s memory card. Some CPUs do not support remote Recipe access. Check the property RemoteRecipesAllowed to ensure that the current CPU supports this feature. 192 Manual, V3.1, 10/2017, A5E AF
193 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface The following code example uses the RecipeFolder property to iterate all Recipes on the CPU memory card. Each recipe is deleted. Network mynetwork = new Network(); IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) foreach (IProfinetDevice dev in devices) ICPU devascpu = dev as ICPU; if (devascpu!= null) if (devascpu.remotedatalogsallowed) // // First check that recipes are available on the memory card // if (devascpu.recipefolder.exists) devascpu.setpassword(new EncryptedString(«Password»)); // // Search for all data log files // for (Int32i=devAsCpu.RecipeFolder.Files.Count — 1; i>=0; i—) IRemoteFile recipe = devascpu.recipefolder.files[i]; if (recipe!= null) recipe.selected = true; // // Delete the recipe. // devascpu.deleterecipe(recipe.name); Manual, V3.1, 10/2017, A5E AF 193
194 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface GetCurrentDateTime method Return type Result Method name GetCurrentDateTime Parameters Name Data type Parameter type Description DateTime System.DateTime Out Current date and time returned from the CPU This method gets the current timestamp for the CPU. The following example searches the IProfinetDeviceCollection for a CPU at a specific IP address, and gets its current date and time. Network mynetwork = new Network(); IProfinetDeviceCollection devices; uint targetipaddress = 0xC0A80001; // Result retval = mynetwork.scannetworkdevices(out devices); if (!retval.succeeded) return; foreach (IProfinetDevice dev in devices) ICPU devascpu = dev as ICPU; if ((devascpu!= null) && (devascpu.ip == targetipaddress)) devascpu.setpassword(new EncryptedString(«Password»)); devascpu.selected = true; DateTime curtime = new DateTime(); retval = devascpu.getcurrentdatetime(out curtime); 194 Manual, V3.1, 10/2017, A5E AF
195 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface GetDiagnosticsBuffer method Return type Result Method name GetDiagnosticsBuffer Parameters Name Data type Parameter type Description DiagnosticsItems m> Out A collection of Diagnostics Items: List<DiagnosticsIte Each item in the collection represents an entry in the diagnostics buffer. This method reads the current diagnostics entries from the CPU. Each entry is represented as a DiagnosticsItem. This class is described after the code example. The Language enum is described in the API enumerations chapter. The following example searches the IProfinetDeviceCollection for a CPU at a specific IP address. When found it reads the diagnostics information from the CPU. Network mynetwork = new Network(); uint targetipaddress = 0xC0A80001; // List<DiagnosticsItem> alogs = new List<DiagnosticsItem>(); IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) foreach (IProfinetDevice dev in devices) ICPU devascpu = dev as ICPU; if ((devascpu!= null) && (devascpu.ip == targetipaddress)) devascpu.setpassword(new EncryptedString(«Password»)); devascpu.selected = true; retval = devascpu.getdiagnosticsbuffer(out alogs, Language.English); if (retval.succeeded) for (int idxlog = 0; idxlog < alogs.count; idxlog++) string descr = alogs[idxlog].description1; Manual, V3.1, 10/2017, A5E AF 195
196 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface The DiagnosticsItem class Note Change the second parameter in the method GetDiagnosticsBuffer, to get the strings in another supported language,. The GetDiagnosticsBuffer method returns a collection of DiagnosticsItem objects. This class defines the following members: Member name Data type Description TimeStamp System.DateTime Time the diagnostic event was logged. State Byte Ingoing or outgoing message Description1 String Title Description2 String Detail MemoryReset method Return type Result Method name MemoryReset This method performs a memory reset on the CPU. The following example searches the IProfinetDeviceCollection for a CPU at a specific IP address, and calls MemoryReset for that CPU. Network mynetwork = new Network(); uint targetipaddress = 0xC0A80001; // IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) IProfinetDevice dev = devices.finddevicebyip(targetipaddress); if (dev!= null) ICPU devascpu = dev as ICPU; if (devascpu!= null) devascpu.setpassword(new EncryptedString(«Password»)); devascpu.selected = true; retval = devascpu.memoryreset(); 196 Manual, V3.1, 10/2017, A5E AF
197 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface ResetToFactoryDefaults method Return type Result Method name ResetToFactoryDefaults Parameters Name Data type Parameter type Description password EncryptedString In This method opens a legitimized connection to the device. Therefore, a password may be required This method resets a CPU to its factory default values. Manual, V3.1, 10/2017, A5E AF 197
198 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface The following example searches the IProfinetDeviceCollection for a CPU at a specific IP address, and calls the ResetToFactoryDefaults method. You must set the SelectedConfirmed flag to TRUE, for Fail-Safe devices. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) ICPU cpu = scanneddevices.finddevicebymac(targetmacaddress) as ICPU; if (cpu!= null && cpu.resettofactoryallowed == true) // Select cpu to update cpu.selected = true; // Unique IP Address? if (cpu.duplicateip == true) return; // Is the device supported? if (cpu.supported == false) return; // Is the device initialized? if (cpu.initialized == false) return; // Is the device failsafe? if (cpu.failsafe == true) ConfirmationType type = cpu.determineconfirmationmessage(failsafeoperation.resettofactoryoperation); // Verify type and confirm cpu.selectedconfirmed = true; // Check to make sure we can update if (cpu.hassafetyprogram == true cpu.protected == true cpu.newrestorenameissafety == true) // Is the device password protected? if (cpu.protected == true) // Was a valid password supplied? if (cpu.passwordvalid == false) return; // Are we legitimized to the safety level? bool bsufficientaccess = cpu.passwordprotectionlevel == ProtectionLevel.Failsafe; if (bsufficientaccess == false) return; 198 Manual, V3.1, 10/2017, A5E AF
199 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface else // Is a safety program about to be loaded? if (cpu.newrestorenameissafety == true) return; // Is the device password protected? if (cpu.protected == true) // Was a valid password supplied? if (cpu.passwordvalid == false) return; // Do we have a sufficient legitimization level for the operation to succeed? bool bsufficientaccess = cpu.passwordprotectionlevel == ProtectionLevel.Failsafe cpu.passwordprotectionlevel == ProtectionLevel.Full; if (bsufficientaccess == false) return; // Perform a reset to factory default values retval = cpu.resettofactorydefaults(); // Reset cpu.selectedconfirmed = false; Manual, V3.1, 10/2017, A5E AF 199
200 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface SetOperatingState method Return type Result Method name SetOperatingState Parameters Name Data type Parameter type Description nrequeststate OperatingStateREQ In The new operating state This method is used to change the operating state of a CPU. Some CPUs do not support this feature. Check the property ChangeModeAllowed to ensure that the current CPU supports this feature. The following example searches the IProfinetDeviceCollection for a CPU at a specific IP address. When found, it checks that the CPU supports the change mode feature, and sets the CPU to RUN. Network mynetwork = new Network(); uint targetipaddress = 0xC0A80001; // IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) IProfinetDevice dev = devices.finddevicebyip(targetipaddress); if (dev!= null) ICPU devascpu = dev as ICPU; if ((devascpu!= null) && (devascpu.changemodeallowed)) devascpu.setpassword(new EncryptedString(«Password»)); devascpu.selected = true; retval = devascpu.setoperatingstate(operatingstatereq.run); 200 Manual, V3.1, 10/2017, A5E AF
201 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface SetCurrentDateTime method Return type Result Method name SetCurrentDateTime Parameters Name Data type Parameter type Description password EncryptedString In This method opens a legitimized connection to the device. Therefore, a password may be required time System.DateTime In New value for the CPU current time. This method sets the current time for the CPU. The configured time transformation rules are not affected by this action. Therefore, the specified DateTime value is based on UTC time and not the local time. The following example traverses the entire industrial network and sets the current time for each CPU device to the current time of the PG/PC. Network mynetwork = new Network(); IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) foreach (IProfinetDevice dev in devices) ICPU devascpu = dev as ICPU; if (devascpu!= null) devascpu.setpassword(new EncryptedString(«Password»)); devascpu.selected = true; retval = devascpu.setcurrentdatetime(datetime.utcnow); Manual, V3.1, 10/2017, A5E AF 201
202 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface UploadDataLog method Return type Result Method name UploadDataLog Parameters Name Data type Parameter type Description strfilename string In The filename of the Data Log to upload from a CPU’s removable SIMATIC memory card. strdestinationfolder string In Fully qualified path where the uploaded file Data Log file is stored 202 Manual, V3.1, 10/2017, A5E AF
203 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface This method uploads a copy of specified Data Log file from a CPU s memory card to your PG/PC. Some CPUs do not support remote Data Log access. Check the property RemoteDataLogsAllowed to ensure that the current CPU supports this feature. The following code example uses the DataLogFolder property to iterate all Data Logs on the CPU memory card. A copy of each Data Log is uploaded to the folder C:MyDataLogs. Network mynetwork = new Network(); IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) foreach (IProfinetDevice dev in devices) ICPU devascpu = dev as ICPU; if (devascpu!= null) devascpu.setpassword(new EncryptedString(«Password»)); if (devascpu.remotedatalogsallowed) // // First check that data logs are available on the memory card // if (devascpu.datalogfolder.exists) // // Search for all data log files // foreach (IRemoteFile datalog in devascpu.datalogfolder.files) datalog.selected = true; // // Upload a copy of each data log. // Manual, V3.1, 10/2017, A5E AF 203
204 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface UploadRecipe method Return type Result Method name UploadRecipe Parameters Name Data type Parameter type Description strfilename string In The filename of the recipe to upload from the CPU memory card. strdestinationfolder string In Fully qualified path where the uploaded Recipe file is written This method upload a copy of a recipe file from a CPU s memory card. Some CPUs do not support remote recipe access. Check the property RemoteRecipesAllowed to ensure that the current CPU supports this feature. 204 Manual, V3.1, 10/2017, A5E AF
205 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface The following code example uses the RecipeFolder property to iterate all recipes on the CPU memory card. A copy of each Recipe is uploaded to the folder C:MyRecipes. Network mynetwork = new Network(); IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) foreach (IProfinetDevice dev in devices) ICPU devascpu = dev as ICPU;if (devascpu!= null) devascpu.setpassword(new EncryptedString(«Password»)); if (devascpu.remoterecipesallowed) // // First check that recipes are available on the memory card. // if (devascpu.recipefolder.exists) // // Search for all recipe files // foreach (IRemoteFile recipe in devascpu.recipefolder.files) recipe.selected = true; // // Upload a copy of each recipe. // Manual, V3.1, 10/2017, A5E AF 205
206 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface UploadServiceData method Return type Result Method name UploadServiceData Parameters Name Data type Parameter type Description strpath string In A fully-qualified path to the folder containing the program card contents. This method can upload the service data from a defective CPU. The following example searches the IProfinetDeviceCollection for a CPU at a specific IP address. It then checks the current OperatingState of the CPU. If the CPU is defective, then the service data is uploaded. Network mynetwork = new Network(); IProfinetDeviceCollection devices; uint targetipaddress = 0xC0A80001; // string strdiagfolder Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) IProfinetDevice dev = devices.finddevicebyip(targetipaddress); if (dev!= null) ICPU devascpu = dev as ICPU; if (devascpu!= null) devascpu.setpassword(new EncryptedString(«Password»)); devascpu.selected = true; if (devascpu.operatingmode == OperatingState.Defective) retval = devascpu.uploadservicedata(strdiagfolder); 206 Manual, V3.1, 10/2017, A5E AF
207 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface FormatMemoryCard method Return type Result Method name FormatMemoryCard This method is used to format the removable SIMATIC memory card plugged into a CPU. The following example searches the IProfinetDeviceCollection for a CPU at a specific IP address. It then formats the memory card of the device. You must set the SelectedConfirmed flag to TRUE, for Fail-Safe devices. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) ICPU cpu = scanneddevices.finddevicebymac(targetmacaddress) as ICPU; if (cpu!= null && cpu.formatmcallowed == true) // Select cpu to update cpu.selected = true; // Unique IP Address? if (cpu.duplicateip == true) return; // Is the device supported? if (cpu.supported == false) return; // Is the device initialized? if (cpu.initialized == false) return; // Is the device failsafe? if (cpu.failsafe == true) ConfirmationType type = cpu.determineconfirmationmessage(failsafeoperation.resettofactoryoperation); // Verify type and confirm cpu.selectedconfirmed = true; // Check to make sure we can update if (cpu.hassafetyprogram == true cpu.protected == true cpu.newrestorenameissafety == true) // Is the device password protected?if (cpu.protected == true) // Was a valid password supplied? Manual, V3.1, 10/2017, A5E AF 207
208 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface if (cpu.passwordvalid == false) return; // Are we legitimized to the safety level? bool bsufficientaccess = cpu.passwordprotectionlevel == ProtectionLevel.Failsafe; if (bsufficientaccess == false) return; else // Is a safety program about to be loaded? if (cpu.newrestorenameissafety == true) return; // Is the device password protected? if (cpu.protected == true) // Was a valid password supplied? if (cpu.passwordvalid == false) return; // Do we have a sufficient legitimization level for the operation to succeed? bool bsufficientaccess = cpu.passwordprotectionlevel == ProtectionLevel.Failsafe cpu.passwordprotectionlevel == ProtectionLevel.Full; if (bsufficientaccess == false) return; // Perform a restore retval = cpu.formatmemorycard(); // Reset cpu.selectedconfirmed = false; 208 Manual, V3.1, 10/2017, A5E AF
209 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface DetermineConfirmationMessage Return type ConfirmationType Method name DetermineConfirmationMessage Parameters This method determines what the content of the confirmation message contains, when the user attempts to perform a safety-relevant operation. The ConfirmationType class contains a series of hamming codes that are each representative of an error message that should be displayed to the user as follows: ConfirmationType SafetyPasswordIsBeingUsed DeletingExistingSafetyProgram ReplacingExistingSafetyProgram Name Data type Parameter type Description operation FailsafeOperation In Operation that is evaluated. ReplacingExistingSafetyProgramWith- NonSafetyProgram LoadingSafetyProgram Message to be displayed An operation to a standard program is about to be initiated using the safety CPU password. An existing safety program is about to be deleted. An existing safety program is about to be updated with another safety program. An existing safety program is about to be replaced by a standard program. A safety program is about to be loaded for the first time. Manual, V3.1, 10/2017, A5E AF 209
210 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface The following example searches the IProfinetDeviceCollection for a CPU at a specific IP address. This method is used to display a message about the safety-relevant status in a user confirmation dialog box, prior to executing a safety-relevant operation. Network mynetwork = new Network(); uint targetipaddress = 0xC0A80001; // IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) IProfinetDevice dev = devices.finddevicebyip(targetipaddress); if (dev!= null) ICPU devascpu = dev as ICPU; if (devascpu!= null) devascpu.setpassword(new EncryptedString(«Password»)); devascpu.selected = true; if (devascpu.failsafe) devascpu.selectedconfirmed = true; ConfirmationType confirm = devascpu.determineconfirmationmessage(failsafeoperation.formatmcoperation); if (confirm == ConfirmationType.DeletingExistingSafetyProgram) devascpu.formatmemorycard(); 210 Manual, V3.1, 10/2017, A5E AF
211 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface RemoteInterfaces properties Decentralized I/O modules Each CPU may support multiple decentralized I/O interfaces. Information about the devices attached on these remote interfaces is available through the RemoteInterfaces property. The following example shows how to access this information for all the CPUs on a network. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) foreach (IProfinetDevice dev in scanneddevices) ICPU devascpu = dev as ICPU; List<IRemoteInterface> decentalnets = devascpu.remoteinterfaces; foreach (IRemoteInterface net in decentalnets) // // Inspect the remote interface // IRemoteInterface properties The IRemoteInterface interface supports the following properties. These properties are readonly. Property name Return type Description Devices List<IBaseDevice> A list of any decentralized I/O stations connected to this remote interface InterfaceType RemoteInterfaceType The communications protocol for this remote interface See also RemoteInterfaceType enumeration (Page 234) Name string The configured name for the remote interface. The Devices property can be used to traverse a decentralized network. Each device in the decentralized network is represented by an IBaseDevice interface. This interface has a subset of the properties available for an IProfinetDevice and provides the limited functionality available for these devices in the SIMATIC Automation Tool API. Manual, V3.1, 10/2017, A5E AF 211
212 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface The following properties are available on the IBaseDevice interface. Property name Return type Description ArticleNumber string The order number for the module. This is also known as MLFB or article number. Comment string This allows the user to specify a comment for the device. This is used in the SIMATIC Automation Tool user interface. It is not relevant for API operations. Configured bool Does the device have a valid configuration. Description string A description of the hardware item, based on the article number. This is the same description that the user would see in TIA Portal. (i.e. «CPU-1215 DC/DC/DC») Failsafe FeatureSupport Based on its Article number, Is this a failsafe device? Family DeviceFamily What is the family of the device? For more information refer to the description of the DeviceFamily (Page 228) enum. FirmwareUpdateAllowed FeatureSupport Does this device support firmware update? FirmwareVersion string The current firmware version of the device HardwareInFirmwareOrder IHardwareCollection Hardware collection in firmware order HardwareInDisplayOrder IHardwareCollection Hardware in displayed order HardwareNumber short Number identifier ID uint The unique identifier for every device and module in the station. This is used as the unique identifier when executing a FirmwareUpdate. Modules IModuleCollection A collection of local modules connected on the station. This property is described in detail here (Page 170). Name string The name of the device. NewFirmwareFile string File path to the new firmware file NewFirmwareVersion string This property is used in the SIMATIC Automation Tool user interface. It is not relevant for API operations. NewFirmwareNameIsValid bool Is the new firmware file valid? Selected bool Is the device selected? 212 Manual, V3.1, 10/2017, A5E AF
213 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface Property name Return type Description SerialNumber string The unique serial number for the device. Slot uint The slot number for the hardware item. SlotName string This property is used in the SIMATIC Automation Tool user interface. It is not relevant for API operations. StationNumber uint The station number of the device. SubSlot uint The subslot of the device. This is relevant for pluggable submodules such as SB Supported FeatureSupport Is the detected network device supported by current SIMATIC Automation Tool API operations? Using the Devices property of the IRemoteInterface, it is possible to inspect all the stations on the decentralized network. Manual, V3.1, 10/2017, A5E AF 213
214 SIMATIC Automation Tool API for.net framework 7.12 ICPU interface To extend the earlier example: Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (!retval.succeeded) return; foreach (IProfinetDevice dev in scanneddevices) ICPU devascpu = dev as ICPU; if (devascpu == null) continue; List<IRemoteInterface> decentalnets = devascpu.remoteinterfaces; List<string> ordernumbers = new List<string>(); foreach (IRemoteInterface net in decentalnets) // // Inspect the remote interface // if (net.interfacetype == RemoteInterfaceType.Profinet) // // Look at each decentral stations // List<IBaseDevice> stations = net.devices; foreach (IBaseDevice station in stations) ordernumbers.add(station.articlenumber); This example traverses all remote PROFINET interfaces and creates a list of the article numbers for all decentralized stations on the industrial network. Since the IBaseDevice also supports the Modules property, it is simple to extend the example further to look at not only the decentralized stations, but also all the local modules on each station. 214 Manual, V3.1, 10/2017, A5E AF
215 SIMATIC Automation Tool API for.net framework 7.13 IHMI interface 7.13 IHMI interface IHMI interface The ScanNetworkDevices method is called to generate an IProfinetDeviceCollection. This collection contains an item for every accessible device on the industrial network. These devices may include CPUs, HMIs, decentralized I/O stations, and other Siemens devices. The IProfinetDevice interface provides properties and methods that apply to all categories of devices. However, there are methods that are only used for HMI devices. These properties and methods are accessible using the IHMI interface. To determine if a given IProfinetDevice interface actually represents a HMI device, cast it to an IHMI. If this cast is successful, then the network device is an HMI, and you can use the methods on the IHMI interface. The following example illustrates this procedure. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) foreach (IProfinetDevice dev in scanneddevices) IHMI devashmi = dev as IHMI; if (devashmi!= null) // // The device is an HMI. // The IHMI interface can be used to interact with it. // Note The IHMI interface inherits from IProfinetDevice. Therefore, all the properties and methods supported on IProfinetDevice are also supported on IHMI. The following IHMI properties topic describes only the properties/methods that are unique to the IHMI interface. Note The IHMI interface supports the FirmwareUpdate method. However, this method will always return the error FirmwareUpdateNotSupported. To update the firmware for an HMI device, it is necessary to execute the Program update method (Page 219). Manual, V3.1, 10/2017, A5E AF 215
216 SIMATIC Automation Tool API for.net framework 7.13 IHMI interface IHMI properties and flags IHMI properties The V3.1 IHMI interface has also received changes from the SIMATIC Automation Tool V3.0 API where many of the parameters have changed into properties on the object. Property name ReturntType Description DeviceType string Returns the type of HMI that the object represents FirmwareDeviceVersion string Returns the firmware version that is present on the HMI RuntimeDeviceVersion string Returns the runtime version that is present on the HMI Program update flags You can use these flags with the V3.1 IHMI interface. Property Name Return Type Description NewProgramNameIsValid bool True when the method SetProgramFolder is a called with a valid program folder. False if program is not valid. ProgramUpdateSucceeded bool True when program update is successful even though an error may return from internal refresh status NewProgramName string Name of the new program NewProgramFolder string Folder location for the new program: Value is set through the SetProgramFolder method NewProgramNameErrorCode Result Codes to find issues that may be present in validating the new program, such as if the program is invalid for the device or if the IP assigment in the program already exists on the network 216 Manual, V3.1, 10/2017, A5E AF
217 SIMATIC Automation Tool API for.net framework 7.13 IHMI interface Restore flags You can use these flags with the V3.1 IHMI interface. Property Name Return Type Description NewRestoreNameIsValid bool True when the method SetBackupFolder is a called with a valid backup file. False if backup file is not valid. RestoreSucceeded bool True when restore is successful even though an error could have been returned from internal refresh status NewRestoreName string What is the name of the new program? NewRestoreFile string What is the file location for the new program? Value is set through the SetbackupFile method NewRestoreNameErrorCode Result Accessible way to find issues that may be present in validating the new program, such as if the program is invalid or incompatible with the device Feature flags Quintessence You can use these flags with the V3.1 IHMI interface. Property Name Return Type Description BackupAllowed bool True if the device allows backups ProgramUpdateAllowed bool True if the device allows program updates RestoreAllowed bool True if the device allows restores Manual, V3.1, 10/2017, A5E AF 217
218 SIMATIC Automation Tool API for.net framework 7.13 IHMI interface Backup method (IHMI interface) Return type Result Method name Backup Parameters Name Data type Parameter type Description strfile string In A fully-qualified path and filename where the backup file is stored This method is used to back up the data for an HMI. Some HMIs do not support the backup/restore feature. Check the property BackupAllowed to ensure that the current HMI supports this feature. The following example searches the IProfinetDeviceCollection for an HMI at a specific IP address. When found, it checks that the HMI supports the backup feature, and calls the Backup method. Network mynetwork = new Network(); uint targetipaddress = 0xC0A80001; // string bkfile IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) foreach (IProfinetDevice dev in devices) IHMI devashmi = dev as IHMI; if ((devashmi!= null) && (devashmi.ip == targetipaddress) && (devashmi.backupallowed) ) devashmi.selected = true; retval = devashmi.backup(bkfile); 218 Manual, V3.1, 10/2017, A5E AF
219 SIMATIC Automation Tool API for.net framework 7.13 IHMI interface ProgramUpdate method (IHMI interface) Return type Result Method name ProgramUpdate This method updates the HMI device’s operating system and run-time software. The parameter strpath assigns a folder containing the program to load. To successfully complete the ProgramUpdate method on the IHMI interface, you must verify the following: Device is selected NewProgramFolder has been set (Accomplished through SetProgramFolder) The following example searches the IProfinetDeviceCollection for an HMI at a specific IP address, and updates the program for that HMI. Network mynetwork = new Network(); uint targetipaddress = 0xC0A80001; // IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) IProfinetDevice dev = devices.finddevicebyip(targetipaddress); if (dev!= null) IHMI devashmi = dev as IHMI; if (devashmi!= null) devashmi.selected = true; retval = devashmi.programupdate(); The new program folder must contain the following files for successful completion: DownloadTask.xml ProjectCharacteristics.rdf Manual, V3.1, 10/2017, A5E AF 219
220 SIMATIC Automation Tool API for.net framework 7.13 IHMI interface These files are generally found in a folder that is created (using TIA Portal) in the following format: DeviceName)Simatic.HMIRT_ProjectsProjectName.DeviceName For example: «C:Desktophmim aSimatic.HMIRT_ProjectsDasBasicUndMobilePanelen.hmim a[KTP700 Mobile]» Note HMI operating system, and runtime software updates ProgramUpdate for an HMI device is different than for a CPU. This method can update firmware, operating system, and runtime software for HMI devices. You do not have the option to select a partial update. SIMATIC Automation Tool updates all data components as necessary, for a consistent download. An HMI Program Update card can have more than one project on the card which requires entering a folder under Simatic.HMIRT_Projects to download. 220 Manual, V3.1, 10/2017, A5E AF
221 SIMATIC Automation Tool API for.net framework 7.13 IHMI interface Restore method (IHMI interface) Return type Result Method name Restore Use this method to restore HMI device data from a previous backup of the device. Some HMI devices do not support the backup/restore feature. Check the property RestoreAllowed to ensure that the current HMI device supports this feature. To successfully complete the Restore method on the IHMI interface the user most verify the following: Device is selected BackupFile has been set (Accomplished through SetBackupFile) The following example searches the IProfinetDeviceCollection for an HMI at a specific IP address. When found, it checks that the HMI supports the restore feature and then calls the Restore method. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) IHMI hmi = scanneddevices.finddevicebymac(targetmacaddress) as IHMI; if (hmi!= null && hmi.restoreallowed == true) // Select cpu to update hmi.selected = true; retval = hmi.setbackupfile(@»c:myfolderbackup.s7pbkp»); if (retval.failed == true) return; // Unique IP Address? if (hmi.duplicateip == true) return; // Is the device supported? if (hmi.supported == false) return; // Perform a restore retval = hmi.restore(); Manual, V3.1, 10/2017, A5E AF 221
222 SIMATIC Automation Tool API for.net framework 7.13 IHMI interface SetProgramFolder method Return type Result Method name SetProgramFolder Parameters Name Data type Parameter type Description strfolder string in Sets the folder location where the program download source is stored. Previously the folder path parameter for Program Update was passed along with the method call on the object. SIMATIC Automation Tool V3.1 changes this by allowing for the user to set the location of the folder. 222 Manual, V3.1, 10/2017, A5E AF
223 SIMATIC Automation Tool API for.net framework 7.13 IHMI interface The following example shows how to set the program folder on an HMI device. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) IHMI hmi = scanneddevices.finddevicebymac(targetmacaddress) as IHMI; if (hmi!= null && hmi.programupdateallowed == true) // Select cpu to update hmi.selected = true; retval = hmi.setprogramfolder(@»c:myfolder»); if (retval.failed == true) return; // Unique IP Address? if (hmi.duplicateip == true) return; // Is the device supported? if (hmi.supported == false) return; // Perform a program update retval = hmi.programupdate(); The folder that is specified for «strpath» must contain the following files for successful completion: DownloadTask.xml ProjectCharacteristics.rdf Manual, V3.1, 10/2017, A5E AF 223
224 SIMATIC Automation Tool API for.net framework 7.13 IHMI interface These files are generally found in a folder that is created (using TIA Portal) in the following format: DeviceName)Simatic.HMIRT_ProjectsProjectName.DeviceName For example: «C:Desktophmim aSimatic.HMIRT_ProjectsDasBasicUndMobilePanelen.hmim a[KTP700 Mobile]» Note ProgramUpdate for an HMI device is different than for a CPU. For an HMI device, this method may update the operating system and run-time software. You do not have the option o select a partial update. The SIMATIC Automation Tool updates components as necessary, for a consistent download. An HMI Program Update card can have more than one project on the card which requires entering a folder under Simatic.HMIRT_Projects SetBackupFile method Return type Result Method name SetBackupFile Parameters Name Data type Parameter type Description strfile string in Sets the folder location where the backup file source is stored. Previously, the file path parameter for Restore was passed along with the method call on the object. SIMATIC Automation Tool V3.1 changes this behavior and allows you to set the location of the folder. The method sets the following flags on the ICPU object: NewRestoreName NewRestoreFile NewRestoreNameIsValid 224 Manual, V3.1, 10/2017, A5E AF
225 SIMATIC Automation Tool API for.net framework 7.13 IHMI interface The following example shows how to set the backup file path on an HMI device. Network mynetwork = new Network(); ulong targetmacaddress = 0x ; // 11:22:33:44:55:66 IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) IHMI hmi = scanneddevices.finddevicebymac(targetmacaddress) as IHMI; if (hmi!= null && hmi.restoreallowed == true) // Select cpu to update hmi.selected = true; retval = hmi.setbackupfile(@»c:myfolderbackup.s7pbkp»); if (retval.failed == true) return; // Unique IP Address? if (hmi.duplicateip == true) return; // Is the device supported? if (hmi.supported == false) return; // Perform a restore retval = hmi.restore(); Manual, V3.1, 10/2017, A5E AF 225
226 SIMATIC Automation Tool API for.net framework 7.14 Support classes 7.14 Support classes Diagnosticsitem A diagnostic item contains diagnostic imformation for a single event. Property Name Return Type Description TimeStamp DateTime Time stamp of the diagnostic event State byte 0=Outgoing event 1=Incoming event Description1 string Basic description Description2 string Detailed description 226 Manual, V3.1, 10/2017, A5E AF
227 SIMATIC Automation Tool API for.net framework 7.15 Exceptions 7.15 Exceptions CriticalInternalErrorException Quintessence The V3.1 API interface has added a custom exception when a critical condition has been detected. When this exception is triggered, it is recommended that you shut down the application that is using the API. When a critical error occurs in the code, this exception is called. Network mynetwork = new Network(); try uint targetipaddress = 0xC0A80001; // IProfinetDeviceCollection devices; Result retval = mynetwork.scannetworkdevices(out devices); if (retval.succeeded) IProfinetDevice dev = devices.finddevicebyip(targetipaddress); if (dev!= null) ICPU devascpu = dev as ICPU; if (devascpu!= null) devascpu.setpassword(new EncryptedString(«Password»)); devascpu.selected = true; if (devascpu.failsafe)devascpu.selectedconfirmed = true; retval = devascpu.resettofactorydefaults(); catch (CriticalInternalErrorException e) // A critical internal error has occurred within the API catch (Exception e) // An exception has occurred within the API Manual, V3.1, 10/2017, A5E AF 227
228 SIMATIC Automation Tool API for.net framework 7.16 API enumerations 7.16 API enumerations DataChangedType This enumeration defines the possible argument values for the DataChangedEventHandler (Page 167). Invalid OperatingState RackInformation Folders File ProfinetName IPAddress Password DeviceFamily This enumeration specifies the product family for a hardware item. CPU1200 CPU1500 ET200AL ET200ECO ET200M ET200MP ET200PRO ET200S ET200SP HMI NetworkDevice None SITOPUPS Unsupported ConfirmationType This enumeration specifies the user confirmation types for safety-relevant operations. Invalid = 0 SafetyPasswordIsBeingUsed = 0x2f DeletingExistingSafetyProgram = 0x ReplacingExistingSafetyProgram = 0x492a282b ReplacingExistingSafetyProgramWithNonSafetyProgram = 0x4a2c2b2d LoadingSafetyProgram = 0x , 228 Manual, V3.1, 10/2017, A5E AF
229 SIMATIC Automation Tool API for.net framework 7.16 API enumerations ErrorCode This enumeration lists all possible return values for a Result object. OK AccessDenied ServiceTimeout Disconnected FailedToDisconnect ServiceNotConnected TooManySessions SessionDelegitimated NotChangableInRun InvalidFileName MultiESNotSupported ServiceAborted MultiESLimitExceeded MultiESIncompatibleOtherESVersion MultiESConflict WriteProtected DiskFull InvalidVersion Failed CPUFailedToEnterRunMode MACAddressIsNotValid IPAddressIsNotValid SubnetMaskIsNotValid GatewayIsNotValid ProfinetNameIsNotValid NewIPAddressIsNotValid NewSubnetMaskIsNotValid NewGatewayIsNotValid NewProfinetNameIsNotValid InvalidPointer SetIPErrorDueProjectSettings UnsupportedDevice SetNameErrorDueProjectSettings OperationNotSupportedByThisDevice DeviceNotOnNetwork FirmwareVersionMatch FirmwareFileNotCompatibleToNew FirmwareFileNotCompatibleToOld FirmwareFileNotCompatibleNotSame FirmwareFileNotCompatibleSame FirmwareFileNotCompatibleBuildType FirmwareFileNotCompatible FirmwareModuleNotReachable FirmwareModuleNotAccepted FirmwareIDNotFound WriteBlockFailed InvalidProjectVersion DeviceIsNotAcceptingChanges InvalidSignature Manual, V3.1, 10/2017, A5E AF 229
230 SIMATIC Automation Tool API for.net framework 7.16 API enumerations ParmeterOutOfRange FailedToZipFolderContents ErrorWritingToFile ErrorCreatingFile ErrorCreatingFolder NoSATLicensePresent InvalidTimeoutValue NoDataToBackup ErrorWritingToStream ErrorReadingFromStream InvalidProjectPath ProjectNotCompatibleWithDevice FailedToSetProfinetName FailedToSetIPAddress DownloadInvalidRecipe IdentityFailure DeviceMismatch InvalidInterface DeviceNotSelected FailsafeAccessRequired InternalApplicationError InvalidPassword DuplicateIPAddress DuplicateProfinetName SafetyDeviceMustBeConfirmed NoSDCardPresent InvalidProgramFolder FSignaturesDoesNotMatch FSignaturesMatch DeviceDoesNotSupportProject ProjectsUpdateIPNotReachable RestoreIPNotReachable ProjectIPNotUnique SafetyProjectDownloadedToStandardNotAllowed PasswordDiversityFailed InvalidBackupFile IncompatibleBackupFile InvalidFirmwareFile OperationWasNotSuccessful CouldNotValidatePassword IPAddressAlreadyExistsOnNetwork MissingProgramFilePassword InvalidProgramFilePassword OperationCancelledByUser InvalidProgramForDevice InvalidProgramFilePasswordLegitimizationLevel RestoreAuthenticationWarning InvalidCPUPassword MissingPAOM DeviceNotFound DeviceAlreadyExists IPAddressAlreadyOnNetwork 230 Manual, V3.1, 10/2017, A5E AF
231 SIMATIC Automation Tool API for.net framework 7.16 API enumerations ProfinetNameAlreadyOnNetwork FailedToConnect DeviceNotInitialized CPUNewerVersionNotSupported IPSuitNotValid IPAddressChanged ScanNoDevicesFound DeviceCannotBeInserted InsertDeviceDuplicateIP InvalidImportLine IPNotReachable CouldNotReadFSignature InvalidNetworkInterface InsufficientLegitimizationLevel NoProgramPassword UnhandledExceptionOccured ErrorLoadingOfflineDatabase ProjectVersionV1NotSupported ProjectOpenCanceled ProgramPasswordNeeded InvalidImportFile FailsafeControlObjectNotFound RestoreError IncompatibleProgramFile UnsupportedProgramFile ProgramFileFamilyMismatch DuplicateNewIPAddress PLCSimAdvancedIsRunning UnexpectedOperatingSystemError ServiceActive RemoteTransferDisabled HardwareSoftwareNotComplete LogicalVolumneMissing LogicalVolumneOutOfSpace Abort FirwareTypeNotSupported FirwareTypeNotInstalled StoreReadFailed StoreWriteFailed RescueBackupNotPossible RescueRestoreNotPossible ConnectionRequired ObjectNotFound BufferToSmall InvalidArguements AttributeNotFound InvalidPath TypeConversionFailed FileReadFailed FileWriteFailed OutOfResources OutOfSpace Manual, V3.1, 10/2017, A5E AF 231
232 SIMATIC Automation Tool API for.net framework 7.16 API enumerations UnknownAddon IncompatibleAddon AddonsUnsupported LicenseFailed UnknownApp UnknownAppAddon UnknownReferenceApp RuntimeMissing RuntimeBroken SignatureRequired SignatureInvalid SignatureFailure CertificateInvalid CertificateFailure CertificateNotReady CertificateExpired CertificateRevoked SecurityLib WrongRuntimeVersion MajorRuntimeDowngrade MajorRuntimeUpgrade MajorImageDowngrade MajorImageUpgrade WrongRuntime NotEnoughMemory ProjectCharacteristicsMissing ProjectCharacteristicsInvalid PanelOrientationIsPortrait PanelOrientationIsLandscape WrongDevicetype NoRuntimeInstalled RuntimeCorrupt Language The Language enumeration allows you to assign the language for returned string data. It contains the following values: English German French Spanish Italian 232 Manual, V3.1, 10/2017, A5E AF
233 SIMATIC Automation Tool API for.net framework 7.16 API enumerations OperatingState This enumeration defines the possible states of the OperatingState property. NotSupported StopFwUpdate StopSelfInitialization Stop Startup Run RunRedundant Halt LinkUp Update Defective ErrorSearch NoPower CiR STOPwithoutODIS RunODIS OperatingStateREQ This enumeration defines the possible state transitions that can be requested, on a call to the SetOperatingState (Page 200) method. Stop Run Manual, V3.1, 10/2017, A5E AF 233
234 SIMATIC Automation Tool API for.net framework 7.16 API enumerations ProgressAction This enumeration defines the possible argument values that can be sent to a ProgressChangedEventHandler (Page 168). Invalid Connecting Reconnecting Disconnecting Initializing Updating Processing Downloading Uploading Deleting Reseting Rebooting Verifying Formatting Refreshing Finished UpdatingFirmware InstallingRuntime InstallingAddOns UninstallingAddOns UpdatingProgram RemoteInterfaceType This enumeration defines the possible states that can be returned from a call to the InterfaceType property on the IRemoteInterfaces (Page 211) interface. None Profinet Profibus ASi 234 Manual, V3.1, 10/2017, A5E AF
235 SIMATIC Automation Tool API for.net framework 7.16 API enumerations FeatureSupport The SIMATIC Automation Tool provides this enumeration to indicate what features each device supports. Uninitialized BackupAllowed ChangeModeAllowed FirmwareUpdateAllowed MemoryResetAllowed PasswordAllowed ProgramUpdateAllowed ResetToFactoryAllowed FormatMCAllowed NotFailsafe RestoreAllowed RemoteDataLogsAllowed RemoteRecipesAllowed Supported FormatMCAllowed Failsafe ServiceDataAllowed SetTimeAllowed DiagBufferAllowed To test whether a device supports a given feature, compare the value of the appropriate property with the FeatureSupport value defined for that feature. For example, the following code checks to see if a device supports the Memory Reset feature, before attempting the operation. Network mynetwork = new Network(); IProfinetDeviceCollection scanneddevices; Result retval = mynetwork.scannetworkdevices(out scanneddevices); if (retval.succeeded) List<ICPU> cpus = scanneddevices.filteronlycpus(); foreach (ICPU cpu in cpus) if (cpu.memoryresetallowed) Manual, V3.1, 10/2017, A5E AF 235
236 SIMATIC Automation Tool API for.net framework 7.16 API enumerations ProtectionLevel The ProtectionLevel enumeration gives the protection level of a CPU password: Unknown Failsafe Full Read HMI NoAccess NoPassword ConfirmationType This enumeration is used to indicate the status of Fail-Safe CPUs. Description Invalid SafetyPasswordIsBeingUsed DeletingExistingSafetyProgram ReplacingExistingSafetyProgram ReplacingExistingSafetyProgramWithNonSafetyProgram LoadingSafetyProgram Value 0 0x2f x x492a282b 0x4a2c2b2d 0x FailsafeOperation The FailSafeOperation enumeration indicates operations that are safety-relevant. Description Invalid ResetToFactoryOperation FormatMCOperation ProgramUpdateOperation RestoreOperation Value 0 0x2f x x x RemoteFolderType The RemoteFolderType enumeration indicates the remote folder type. Description None Recipe Datalog Value Manual, V3.1, 10/2017, A5E AF
237 SIMATIC Automation Tool API for.net framework 7.17 Network example 7.17 Network example This example shows a TIA Portal network configuration and the API interfaces that represent the networked devices. Assume that all the devices in the top row (PLC_1, IO device_1, and PLC_2) are connected to an external Ethernet network (not shown), and so can be directly accessed by the SIMATIC Automation Tool API. Further, assume that the PROFINET subnet connected to PLC_2 is not connected to the external network. The SIMATIC Automation Tool API can provide information and operations for all the PLCs and I/O stations in this configuration. Manual, V3.1, 10/2017, A5E AF 237
Free — Fast — Easy For Automation ^^
SIMATIC Automation Tool – Is a Siemens PLC configuration tool without TIA Portal software
When implementing an automation project, customers do not always have a computer installed with TIA Portal for us to interfere with the remote PLC. As we know, the most basic TIA Portal is also quite heavy (around 5GB) and requires a powerful machine configuration. So not all computers can install this software.
This software is very light (about 300MB), this is a tool to help us communicate with the PLC and perform some basic operations. Especially on the client side, they do not need to install TIA Portal software to handle the situation.
- Features that SIMATIC Automation Tool can perform:
+ Scan the PROFINET / Ethernet network and identify the connected devices in the network.
+ Flash the device’s LED or HMI screen to locate the device.
+ Create a table that maps the accessible devices on the network
+ Addressing (IP, subnet, gateway) and station name (PROFINET device)
+ Real time synchronization on PLC with time on your PC.
+ Download the program to the PLC (V3.1 or higher versions with failsafe support) and HMI.
+ Switch the RUN / STOP mode on the PLC.
+ PLC memory reset.
+ Backup / Restore PLC or HMI as backup file (V3.1 or newer supports failsafe)
+ Upload service data from PLC (data is recorded when PLC is faulty)
+ Read diagnostics from the PLC.
+ Firmware upgrade in PLC and attached modules.
+ Upload, download, or delete Recipe data (stored on a memory card) from the PLC
+ Upload or delete Data log (stored on memory card) from PLC
+ Store and save network information (network) as:
Text file .csv or .Sat file with password protected and encrypted
+ API support for creating .NET applications based on the features available in SIMATIC Automation Tool
- Watch the video on how to use the Automation Tool here
…
- Software installation video (Download link below the article)
- Instructions for installing the software with detailed images:
+ Step 1: Download the software and extract it then into the Automation Tool folder
+ 2: Run the software installation file
+ 3: Choose the setup language
+ 4: Click Next to continue
+ 5: Choose Installation Language
+ 6: Choose Destination Location
+ 7: Accept all license terms
+ 8: Accept security
+ 9: Select Install to start the install section
+ 10: Wait for the software to install momentarily
+ 11: Restartmays your computer when the installation process is finished
+ 12: Go to SIM_EKB_Install folder after Restart PC
+13: Run SIM_EKB_Install software with adminstrator rights
+ 14: Follow the steps in the order shown below
Enjoy
>>> Link Download Software ( Google Driver – Fast For Download )
+ Download SIMATIC Automation Tool V3.1 Software.RAR
+ Download SIM_EKB_Install Software.RAR
Update: Download Automation License Manager V6 SP8(Compulsory Upgrade)
Password Extract: plc4me.com
Thanks for reading !
You may also like
About the author