Download
Welcome to the download area of PLCcom for S7.
Here the current versions of PLCcom for S7 software are available for download.
.Net
PLCcom for S7 Version 12.1.5
Upload-Datum: 25.01.2023
30-day trial version
Java
PLCcom for S7 Version 12.1.5
Upload-Datum: 25.01.2023
30-day trial version
Changelog PLCcom for S7
Version 12.1.5
- Support for .Net 7.0 framework (.Net version)
- Support / test Jdk/Openjdk up to version 19 (java version)
- Implementation of new data types:
- Lint
- LWord
- LReal
- S7WString
- LTime*
- LDate_And_Time*
- LTime_of_Day*
- DTL*
- Adaptation and test with modified PLC firmware versions
- Bugfix: When writing S7String values the length specification was not set correctly
- Diverse internal adjustments and improvements
*) Verfügbar in der java Version und innerhalb der .Net Version ab .Net 7
Version 11.2.1 (.net version only)
- Bugfix: Problem when integrating the library into a net5.0 project
- Bugfix: After restarting the PLCcomDataServer, the quality is incorrectly output as undefined
- Sample projects in the delivery package are now also available for the target platform net5.0
- Reference upgrade System.Io.Ports to version 5
- Support of the .Net 5.0 framework
- Nuget package available
- .NET Framework version at least 3.5
- Adaptations for new PLC types and firmware versions
- Bugfix: Error -125 when writing values with the S7STRING data type fixed
- Bugfix: Occurring error "Resource file not found" fixed
- Bugfix: Missing library "winmm.dll" when running under Linux operating systems
- internal optimizations
- Performance optimization at read option 'Auto'
- Support new firmware versions
- Backward compatibility problem fixed
- PLCcomDatServer.AddReadDataRequest (ReadDataRequest value, String ItemKey) function reintroduced
- internal optimizations
- Supports Logo! 0BA0 controls
- Provision as .Net Standard 2.1, .Net3.5 and .Net 4.6.1 Library (.net Library)
- improved adjustments when using openJRE / openJDK system libraries (java library)
- Execution under Android from Api 21 (java library)
- new possibility to parameterize the balance between CPU usage and speed of data provision (new enum ePerformance)
- improved support for new firmware versions of 1200 and 1500 controllers
- internal bug fixes and improvements
- Bugfix: Possible deadlog at request of long data values with optimizemode AUTO
- internal optimizations
- Component is now available for .net-Standard, .net-Core, Xamarin, UWP and Android
- new function ReadWriteData for optimized reading and writing data
- simultaneous reading or writing of data in a function call in different areas
- new optimization methods CROSS_AREA (Mix-Mode) and COMBINE_AREAS
- automatic calculation of the best optimization mode (only in Expert Edition)
- various internal improvements of the algorithms
As part of the cleanup, various methods and functions have been removed.
These functionalities were already marked as deprecated within the previous versions and should therefore no longer be used for a long time.
The following functions have been removed:
Version | type | removed function | Instead, functionality to use |
---|---|---|---|
Alle | enum | ePLCType.Logo_compatibel | ePLCType.Logo0BA7_compatibel oder ePLCType.Logo0BA8_compatibel |
Alle | enum | eDataType.UNICODECHAR | eDataType.STRING oder eDataType.S7_STRING |
Alle | enum | eDataType.BCD | eDataType.BCD16 |
Alle | object | ReadItemRequest | ReadDataRequest |
Alle | object | ReadItemRequestCollection | ReadWriteRequestSet |
Alle | object | ReadRequest | ReadDataRequest |
Alle | object | WriteRequest | WriteDataRequest |
Alle | object | ReadItemResult | ReadDataResult |
Alle | object | ReadItemResultCollection | ReadWriteResultSet |
Alle | object | ReadResult | ReadDataResult |
Alle | object | WriteResult | WriteDataResult |
.Net | method | PLCcomDevice.SetPLCTime(DateTime) | PLCcomDevice.SetPLCClockTime (DateTime) |
Java | method | PLCcomDevice.setPLCTime(Calendar) | PLCcomDevice.setPLCClockTime (Calendar) |
.Net | function | PLCcomDevice.GetPLCTime() | PLCcomDevice.GetPLCClockTime() |
Java | function | PLCcomDevice.getPLCTime() | PLCcomDevice.getPLCClockTime() |
.Net | function | PLCComDataServer.AddReadDataRequest (ReadDataRequest value, String ItemKey) |
PLCComDataServer.AddReadDataRequest (ReadDataRequest value) |
Java | function | PLCComDataServer.addReadDataRequest (ReadDataRequest value, String ItemKey) |
PLCComDataServer.addReadDataRequest (ReadDataRequest value) |
.Net | function | PLCcomDevice.GetLocal_MPI() | PLCcomDevice.GetBUS_ADRESS_LOCAL() |
Java | function | PLCcomDevice.getLocal_MPI() | PLCcomDevice.getBUS_ADRESS_LOCAL() |
.Net | method | PLCcomDevice.SetLocal_MPI(int) | PLCcomDevice.SetBUS_ADRESS_LOCAL(int) |
Java | method | PLCcomDevice.setLocal_MPI(int) | PLCcomDevice.setBUS_ADRESS_LOCAL(int) |
.Net | function | PLCcomDevice.GetPLC_MPI() | PLCcomDevice.GetBUS_ADRESS_PLC() |
Java | function | PLCcomDevice.getPLC_MPI() | PLCcomDevice.getBUS_ADRESS_PLC() |
.Net | method | PLCcomDevice.SetPLC_MPI int) | PLCcomDevice.SetBUS_ADRESS_PLC(int) |
Java | method | PLCcomDevice.setPLC_MPI(int) | PLCcomDevice.setBUS_ADRESS_PLC(int) |
.Net | function | PLCcomDevice.GetLocal_PPI () | PLCcomDevice.GetBUS_ADRESS_LOCAL() |
Java | function | PLCcomDevice.getLocal_PPI () | PLCcomDevice.getBUS_ADRESS_LOCAL() |
.Net | method | PLCcomDevice.SetLocal_PPI(int) | PLCcomDevice.SetBUS_ADRESS_LOCAL(int) |
Java | method | PLCcomDevice.setLocal_PPI(int) | PLCcomDevice.setBUS_ADRESS_LOCAL(int) |
.Net | function | PLCcomDevice.GetPLC_PPI() | PLCcomDevice.GetBUS_ADRESS_PLC() |
Java | function | PLCcomDevice.getPLC_PPI() | PLCcomDevice.getBUS_ADRESS_PLC() |
.Net | function | ConnectResult.HasConnected | OperationResult.getQuality |
Java | function | ConnectResult.hasConnected() | OperationResult.getQuality() |
.Net | function | ConnectResult.HasWorked | OperationResult.getQuality |
Java | function | ConnectResult.HasWorked () | OperationResult.Quality() |
.Net | function | BasicInfoResult.Ordernummer | BasicInfoResult.Ordernumber |
Java | function | BasicInfoResult.Ordernummer() | BasicInfoResult.Ordernumber() |
Within the new version, the following functionalities have been marked as deprecated:
Version | type | Deprecated | Instead, functionality to use |
---|---|---|---|
.Net | function | ReadData(ReadDataRequestCollection) | ReadWriteData(ReadWriteRequestSet) |
Java | function | readData(ReadDataRequestCollection) | readWriteData(ReadWriteRequestSet) |
Java | function | DeviceInfo() | getDeviceInfo() |
Java | function | DisConnect() | disConnect() |
Java | function | BeginConnect() | beginConnect() |
Java | function | StartPLC() | startPLC() |
Java | function | GetPLCClockTime() | getPLCClockTime() |
Java | function | SetPLCClockTime(Calendar) | setPLCClockTime(Calendar) |
Java | function | GetLEDInfo() | getLEDInfo() |
Java | function | GetBasicInfo() | getBasicInfo() |
Java | function | GetCPUMode() | getCPUMode() |
Java | function | GetBlockList() | getBlockList() |
Java | function | GetBlockLenght(eBlockType, int) | getBlockLenght(eBlockType, int) |
Java | function | ReadPLCBlock_MC7(eBlockType, int) | readPLCBlock_MC7(eBlockType, int) |
Java | function | WritePLCBlock_MC7(WritePLCBlockRequest) | writePLCBlock_MC7(WritePLCBlockRequest) |
Java | function | DeleteBlock(eBlockType, int) | deleteBlock(eBlockType, int) |
Java | function | GetDiagnosticInfo() | getDiagnosticInfo() |
Java | function | GetSystemStatusList(int, int) | getSystemStatusList(int, int) |
Java | function | BasicInfoResult.Ordernumber() | BasicInfoResult.getOrdernumber() |
Java | function | BasicInfoResult.ModuleVersion () | BasicInfoResult.getModuleVersion () |
Java | function | BasicInfoResult.FirmwareVersion () | BasicInfoResult.getFirmwareVersion() |
Java | function | BasicInfoResult.Name () | BasicInfoResult.getName() |
Java | function | CPUModeInfoResult.CPUModeInfo() | CPUModeInfoResult.getCPUModeInfo() |
Java | function | CPUModeInfoResult.CPUStateInfo() | CPUModeInfoResult.getCPUStateInfo() |
Java | function | LEDInfoResult.LEDInfo() | LEDInfoResult.getLEDInfo() |
Java | function | OperationResult.InnerException() | OperationResult.getInnerException() |
Java | function | OperationResult.Message() | OperationResult.getMessage() |
Java | function | OperationResult.Quality () | OperationResult.getQuality() |
- only Java Bugfix connection error to a WinAC RTX PLC
- Fix: Possibly error while reading large data
- Assamblies singed with code singing certificate
- Bugfix: Wrong month reading DATE_AND_TIME values
- Bugfix a possible timeout if running the "IsConnected" function from a second parallel thread
- Resolving compatibility issues when communicating with 1500 firmware with older firmware
- Resolving compatibility issues when communicating with 1500 firmware with older firmware
Version 8.1.3 (only for the .net versions)
- unnecessary debug outputs were removed
- improved firmware version support
- optimized communication process
- Bugfix: Eventually 0 values while communication to WinAC RTX plc
- various little bugfixes
- Bugfix writing data
- Bugfix: 0 Reference error / DataImage logging
- improved stability behavior
- faster recognition of TCP - disconnections
- Bugfix: When connecting to ALREADY otherwise affiliated Logo ! 0BA8- controls
- Write flags while setting a datablock
- new supported Data Types: Time of Day, Time, Date, BCD8, BCD16, BCD32, BCD64
- the existing format BCD is replaced by BCD16
- Bugfix: Error handling zero-based strings
(only for the .Net and WinCE versions)
- fixed signature problems
Version 7.2.0
- Bugfix: Writing more than 485 Bytes in a S7 1500er PLC
-
Unification of class model for reading, writing and access to ReadCollection
-
detailed diagnostic output for every single request leading to an efficient error tracking
-
full support of Siemens Logo! 0BA8
-
Data server for event controlled variable monitoring on the SPS (expert version only)
-
Appropriation of logging connectors for: (expert version only)
- Progressive logging of SPS data to file system or SQL database
- Writing of a latest SPS data copy to file system or SQL data base for further usage
- encoded data storage to filesystem
- no limitation of database type while definition and handoff database connection by developer (Within the subfolder / docs you will find a list of all tested SQL data)
-
Performance optimized
-
smaller bugfixes
-
complete work-over of example- and testing-programs
Version 6.14.0
-
Bugfix: Reading S7-Strings, if actual lenght equals max lenght
-
Bugfix: Reading Flags (from Version 6.10.0)
Version 6.10.0
-
internal improvement
-
more bugfix: Blocks more 113 objects
-
Bugfix when DB-number > 9999
Version 6.9.0
-
internal improvement
-
Bugfix: Blocks more/equal 113 objects
-
Bugfix: Timeout problems at MPI connection
-
Bugfix when reading many data blocks (GetBlocklist)
-
Bugfix: Error if optimize of readcollections is deactivated
-
Rename: Function: setoptmize to setoptimize
-
Deprecated setlength
-
Bugfix: Read / write S7Strings longer than 127 Bytes
- Added: Read unsigned Bytes
-
Bugfix >> Error during write of multiple blocks when the PLC has not much free memory available
-
Bugfix >> NullReferenzException occurred while read a ReadItemRequestCollection and the device is not connected
-
Added Datatype S5 Time
-
property Speed in the base class PLCcomDevice implemented (only .Net-, and WinCE-versions)
-
getSpeed und SetSpeed in the base class PLCcomDevice implemented (only Java version)
-
Bugfix >> Error occurred while adding an item when optimization is enabled
-
Version release for Windows CE 5.0 and 6.0 (e.g. ARM-Processors)
- Support Siemens LOGO!-PLC (version 0BA7)
- Start / stop S7-1200 PLCs
- Get created Blocks
- Read block lenght
- Backup existing blocks
- Restore existing blocks
- Restore to diffent blocks
- Read block details e.g. creating language (AWL, KOP, etc.), author, version, rawdata, header, footer uvm.
- Read diagnostic buffer and return flat text messages
- Delete blocks
- send password to unlock connection of password-protected PLCs
- Support PLCSIM (from version 5.4 > requires installed Netgateway e.g. NetToPlcSim)
- Implementation abstract basis class to inherit of the device classes (TCP_ISO_DEVICE, MPI_DEVICE, PPI_DEVICE)
- Implementation of methods to direct writing of Strings and S7Strings with codepage or cultureInfo
- Reading basic informations while connecting device. Provide informations as BasicInfoResult from Property DeviceInfo
- Implementation of "Service-Connections" to control Logo!-PLCs
- Setting PLC communication port number of TCP-IP-Connections
- Setting local communication port number of TCP-IP-Connections(Important for firewall settings)
- Providing connection informations as ConnectionState
- Event implementation "On_ConnectionStateChange" while ConnectionState changes
- Implementation of asyncron connecting
- AutoConnect with adjustable waiting time till auto disconnect
- Mulit languages implementation (currently english (default) and german
- Read data from system state list (if existing)
- Reading PLC operating mode and status (run, stop, key position, etc.)
- Renewal the example application
- Increase in performance
- Bugfix (timeout while changing the clocks (summer/winter))
- Bugfix ReadItemResultCollection block greater than 2206
- Deprecated Methods read/write UniCode. New methods read/write Strings and S7Strings
- Implementation a quality enum type within result classes, to indicate kind of success (without parsing error texts as before)
- Rename return value of class BasicInfoResult from Ordernummer to OrderNumber
- Removal propertys Local_MPI, Local_PPI, PLC_MPI, PLC_PPI with propertys BUS_ADRESS_LOCAL and BUS_ADRESS_PLC in device classes. Local_MPI, Local_PPI, PLC_MPI, PLC_PPI marked as "deprecated"
- Removal functions GetPLCTime and SetPLCTime with functions GetPLCClockTime and SetPLCClockTime, and return a PLCClockTimeResult-object. GetPLCTime and SetPLCTime marked as "deprecated"
- internal Fixes...
-
compatible with Siemens Soft PLC WinAC RTX 2010
- compatible with Siemens PLC of the 1500s series
- supports the .Net Framework 4.5
- Bugfix GetPLCTime
- Performance optimizations for access with TCP-IP
- Bugfix when addressing Rack + Slot
-
Bugfix GetPLCTime
- Bugfix result output when writing
-
With the new upgrade, the PLCcomS7 Library achieves a significant performance increase for cyclically recurring read accesses.
A major innovation is the introduction of new "ReadItemCollection Objects", to which the variables to be read individually (e.g. individual DINT values) are added.
When reading, these variables are combined to optimum read accesses to the corresponding PLC. Thus, the necessary read accesses to the respective PLC are reduced to a minimum, which means a much improved performance, as opposed to individually requested variables.
Something else that is also omitted is the summary of variables into a stream by the software developer - this means that the development time is reduced significantly and this aspect also greatly simplifies the handling.
Internal process changes also ensure improved performance and stability.
-
Bugfix write Int
-
any potential problems with VIPA-CPUs fixed
-
Support of S7 1200er model series
-
.Net Framework 4 compatible
-
Bugfix read Byte
-
Bugfix write Dword
-
Bugfix for “ADDWORD”
-
Bugfix at event. „Write errors of Bits"
-
Bugfix: SetPlcTime
-
Starting and stopping the CPU
- Reading out serial number and firmware version
- Reading out Keyswitch setting
- Reading out LED info
- Reading and writing Date_and_Time values
-
Supports communication via PPI Protocol
-
Supports communication for SPS S7-200 via CP-243 (TCP/IP)
- capable of running and tested under Linux with Mono Framework 2.4
- various performance improvements
Documentation PLCcom for S7
PLCcom class library documentation for .net
PLCcom class library documentation for java
First steps PLCcom for S7
Helpful docs PLCcom for S7
Important notes for migrating from version8 or older
Important notes for migrating from version11 or older (java version)
Application_Note_1200-1500_english.pdf
Application_Note_Logo_english.pdf
Documentation_PLCcom_database_interface_english.pdf
Documentation_PLCCom_interface_for_filesystem_english.pdf
Scripts PLCcom for S7
create_plccom_dbobjects_Firebird.sql
create_plccom_dbobjects_MSSQLServer.sql
create_plccom_dbobjects_MySQL.sql
create_plccom_dbobjects_oracle.sql
create_plccom_dbobjects_PostgresSQL.sql
create_plccom_dbobjects_SQLite.sql
You can find the complete functional range PLCcom for S7 here:
Features (je nach CPU-Typ und Edition, siehe Functions depending on the type of PLC):
- Read and write operations of the following data types
- Raw data (Byte or Bool)
- Bit
- Byte
- Word
- DWord
- Float
- Unicode Char
- INT
- DINT
- 16Bit BCD
- DATE_AND_TIME
- String
- S7String values
- Reading of input, output, data blocks, markers, timers, counters
- multiple operations possible with one function retrieval; each operation provides a detailed return value
- simultaneous access to different CPUs possible
- implemented high-performance access
- internal auxiliary and conversion functions for easy reading and writing of certain PLC data types
- Starting and stopping the CPU
- Reading out serial number and firmware version
- Reading out Keyswitch setting
- Reading out LED info
- Get and set PLC time
- Reading system status list SSL
- Readingblock list
- Reading length of block
- Backup of blocks
- Restore of blocks
- Restore of blocks under different block number
- Delete blocks
- Get block details e.g. code, create language, author, and much more
- Send the passwort for deactive the PLC protection
- Reading diagnostic data
- AutoConnect
- Async connect
- and much more