ASComm IoT - Siemens S7 PLC Communications Driver for .NET 8.0, 7.0, 6.0, 5.0, Core Developers.
Automated Solutions ASComm IoT is a fully managed .NET communications library that allows you to read and write tags and registers on programmable logic controllers (PLC), programmable automation controllers (PAC), and instrumentation.
Use Visual Basic, C# and C++ to create HMI, SCADA, data logging, and Industrial IoT applications targeting .NET 8.0, 7.0, 6.0, 5.0 and .NET Core 3.1+, .NET Framework 4.7.2+, Universal Windows Platform (UWP), Desktop, ASP .NET Core, service that run on Windows 11, Windows 10, Linux and Xamarin.Android.
Features & Benefits
Siemens S7 Driver
- Does not require Siemens or 3rd party drivers.
- Does not require OPC
- Supports UDTs
- Read and write entire UDTs and PDTs, including arrays and nested UDTs
- Extremely high performance - capable of < 5 mSec transaction time
- Highly optimized to minimize communications transactions
General
- Runs on Windows 11, Windows 10, Linux and Android
- Runs on Windows 10 IoT Core devices like Raspberry Pi
- Can be used to power your IoT edge devices
- 100% managed code
- .NET 8.0, 7.0, 6.0, 5.0 compatible
- .NET Core 3.1 and higher compatible
- .NET Framework 4.6.1 and higher compatible
- .NET Standard 2.0 compatible
- Visual Studio.NET 2017, 2019 & 2022 Compatible
- Supported Project types include Desktop, UWP, Web, WPF, console, worker service and Windows service apps
- Easily connect to your factory floor systems
- All drivers included in single component, providing consistent API regardless of target device brand or model
- Data items can be added to groups, which can be configured for timed polling
- Multiple groups can be created per device to accommodate multiple update rates
- Supports data change and error events
- Built-in serialization allows you to save/load your entire communications configuration with a single line of code
- Single component runs multiple concurrent protocols
- Object inheritance provides consistent user interface, regardless of underlying communications protocol
Documentation / Examples
- Includes .NET 6.0, .NET Core, .NET Framework, Android and UWP example applications with associated C# and VB source code
- Extensive Help documentation contains topics for getting started, driver specific functionality, design considerations, licensing, etc.
- Extensive API documentation for software developers
License
- Non-commercial and Commercial licensing available
- Licensing can be accomplished via Internet, telephone, or email
- No Hardware Keys - software licensing mechanism is simple and intuitive
- Licenses for each driver can be purchased individually, so you only pay for the drivers that you need
- Allows for unattended license transfer across machines
- Immediate Internet delivery and online license activation.
- No runtime fees or keys for non-commercial applications.
Drivers
Drivers available for the following brands/models
- Allen Bradley ControlLogix, CompactLogix, GuardLogix, Micro800 via Ethernet
- Allen-Bradley PLC-5, SLC 500, MicroLogix via Ethernet
- GE, Emerson - Series 90, VersaMax, PACSystems RXi, RX3i, RX7i via Ethernet
- Modbus/TCP Client via Ethernet
- Siemens S7-1500, 1200, 400, 300, 200 via Ethernet
Simple Code Examples
C#
// Declare using statement
using SIS7 = AutomatedSolutions.ASCommStd.SI.S7;
// This function creates all required ASComm objects, sets initial properties, performs a write and read, then disposes the ASComm objects.
void SimpleReadAndWrite()
{
// Create a Channel, Siemens channels have no settable properties
SIS7.Net.Channel myChannel = new SIS7.Net.Channel();
// Create a Device: S7-1200 CPU at IP Address 192.168.0.121, rack 0, slot 2
SIS7.Device myDevice = new SIS7.Device("192.168.0.121,0,2", SIS7.Model.S7_1200);
// Create a Group with active flag set to false (no background scanning).
SIS7.Group myGroup = new SIS7.Group(false, 500);
// Create an Item: hardware tag name (data block) = 'DB3.DBB4', elements = 1, data type = byte
SIS7.Item myItem = new SIS7.Item("DB3.DBB4", 1, DataType.BYTE);
// Add device to channel
myChannel.Devices.Add(myDevice);
// Add group to device
myDevice.Groups.Add(myGroup);
// Add item to group
myGroup.Items.Add(myItem);
//Write one tag
try
{
// Perform a write with value from text box
myItem.Write(textBoxItemWrite.Text);
}
catch (Exception ex)
{
// Error occurred, implement error handler
}
// Read one tag
try
{
// Perform a read, save value to text box
myItem.Read();
textBoxItemRead.Text = myItem.Values[0].ToString();
}
catch (Exception ex)
{
// Error occurred, implement error handler
}
// Dispose channel at application shutdown
myChannel.Dispose();
}
Visual Basic
' Declare imports statement
Imports SIS7 = AutomatedSolutions.Win.Comm.SI.S7
' This function creates all required ASComm objects, sets initial properties, performs a write and read, then disposes the ASComm objects.
Private Sub SimpleReadAndWrite()
' Create a Channel, Siemens channels have no settable properties
Dim myChannel As New SIS7.Net.Channel()
' Create a Device: S7-1200 CPU at IP Address 192.168.0.121, rack 0, slot 2
Dim myDevice As New SIS7.Device("192.168.0.121,0,2", SIS7.Model.S7_1200)
' Create Group with active flag set to false (no background scanning).
Dim myGroup As New SIS7.Group(False, 500)
' Create an Item: hardware tag name (data block) = 'DB3.DBB4', elements = 1, data type = byte
Dim myItem As New SIS7.Item("DB3.DBB4", 1, DataType.BYTE)
' Add device to channel
myChannel.Devices.Add(myDevice)
' Add group to device
myDevice.Groups.Add(myGroup)
' Add item to group
myGroup.Items.Add(myItem)
'Write one tag
Try
' Perform a write with value from text box
myItem.Write(textBoxItemWrite.Text)
Catch ex As Exception
' Error occurred, implement error handler
End Try
' Read one tag
Try
' Perform a read, save value to text box
myItem.Read()
textBoxItemRead.Text = myItem.Values(0).ToString()
Catch ex As Exception
' Error occurred, implement error handler
End Try
' Dispose channel at application shutdown
myChannel.Dispose()
End Sub
Automated Solutions Website
ASComm IoT Product Page
Siemens S7 Driver Page
Download 30-day Trial
Revision History
License Agreement
Support Page
707-578-5882 voice
sales@automatedsolutions.com
https://www.automatedsolutions.com
Company
Automated Solutions develops and sells software products for industrial and process automation. We also provide custom development services using our products for organizations that need custom HMI, SCADA, interface, or logging applications, but are short on development resources.
Our software products do not target specific industries. They are used in diverse industries such as agriculture, automotive, mining, gas, building, construction, food & dairy, beer, wine & spirits, textile, mills, and petroleum. You can even find our software on submarines, in amusement parks, and Internet telescopes.
Founded in 1994, over 3300 companies now use our software products globally to build high-performance, cost-effective HMI, SCADA, machine control, and data logging applications.
Other products and companies referred to herein are trademarks or registered trademarks of their respective companies or mark holders.