fbarresi / BeckhoffS7Client

Unofficial TwinCAT function for S7 Communication
MIT License
35 stars 6 forks source link
beckhoff beckhoff-twincat-plc s7-plc siemens-plc twincat twincat-ads

BeckhoffS7Client

Build status Codacy Badge Licence GitHub All Releases

Unofficial TwinCAT function for S7 Communication

This software is an (unofficial) opensource implementation of TF6610 | TC3 S5/S7 Communication similar to my other project BeckhoffHttpClient.

Main features

Your surely gonna love this software, but if you still need a couple of information for starring this project...

Requirements

How to use this software

Install and setup connections

{
  "BeckhoffSettings": {
    "AmsNetId": "",
    "Port": 851
  },
  "ExtenalPlcSettings": [
    {
      "Name": "s7-300",
      "IpAddress": "10.30.10.50",
      "Port": 102,
      "Rack": 0,
      "Slot": 2
    }
  ]
}

Use The S7 Attribute

Use the S7 attribute in your project for connect your primitive variables (like an input or output) to a S7.

VAR_GLOBAL

    {attribute 'S7.Out'}
    {attribute 'S7.Address' := 'db2.dbx0.0'}
    imAlive : BOOL;

    {attribute 'S7.In'}
    {attribute 'S7.Address' := 'db2.dbx1.0'}
    {attribute 'S7.Plc' := 's7-300'} // you have to select a plc by name only if you have more then one
    otherSystemAlive :BOOL;

END_VAR

Supported TwinCAT Datatypes

S7 Addressing rules

every address has the form (case unsenible) DB<number>.<TYPE><Start>.<Length/Position> i.e.: DB42.DBX0.7 => (means) Datablock 42, Bit (DBX), Start: 0, Position: 7 .

Following types are supported:

Logfiles

Logfiles are saved into C:\TwinCAT\Functions\Unofficial\BeckhoffS7Client\Service.log. You can use TailBlazer for a live view.

Would you like to contribute?

Yes, please!

Try the library and feel free to open an issue or ask for support.

Don't forget to star this project!

Credits

Special thanks to JetBrains for supporting this open source project.