All Projects → psi-4ward → s7client

psi-4ward / s7client

Licence: MIT license
Hi level API for node-snap7 to communication with Siemens S7 PLCs

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to s7client

Industrial-Security-Auditing-Framework
ISAF aims to be a framework that provides the necessary tools for the correct security audit of industrial environments. This repo is a mirror of https://gitlab.com/d0ubl3g/industrial-security-auditing-framework.
Stars: ✭ 43 (+19.44%)
Mutual labels:  plc, siemens
plc-programmable-3d-simulation
Project for students who want to learn PLC programming but don't have access to real-world machines or constructions to learn programming on.
Stars: ✭ 49 (+36.11%)
Mutual labels:  plc, siemens
TcOpen
Application framework for industrial automation built on top of TwinCAT3 and .NET.
Stars: ✭ 187 (+419.44%)
Mutual labels:  sps, plc
Sharpscada
C# SCADA
Stars: ✭ 2,043 (+5575%)
Mutual labels:  plc, siemens
IoT-system-PLC-data-to-InfluxDB
This project aim is to provide free software to fetch data from plcs (Siemens S7-300/400/1200/1500) and store it. Used stack is completly opensource. I used InfluDB as data storage, so application principle is following Big Data paradigm.
Stars: ✭ 26 (-27.78%)
Mutual labels:  plc, snap7
Iot Dc3
IOT DC3 is an open source, distributed Internet of Things (IOT) platform based on Spring Cloud. It is used for rapid development of IOT projects and management of IOT devices. It is a set of solutions for IOT system.
Stars: ✭ 195 (+441.67%)
Mutual labels:  plc
V2GInjector
V2GInjector - Tool to intrude a V2G PowerLine network, but also to capture and inject V2G packets
Stars: ✭ 79 (+119.44%)
Mutual labels:  plc
Remotemonitor
本项目是一个利用HslCommunication组件读取PLC的示例项目,演示了后台从PLC循环读取到前台显示,并推送给在线客户端,客户端同步显示并画实时曲线图。支持web端同步的数据显示,支持web端远程操作PLC,安卓端数据显示,远程操作PLC
Stars: ✭ 160 (+344.44%)
Mutual labels:  plc
node-drivers
Industrial protocol drivers in node.js
Stars: ✭ 20 (-44.44%)
Mutual labels:  plc
Lecpserver
LECPServer 全称 Leanboard Equipment Communication Proxy Server 是一款基于 JLean 框架开发的高性能工业用组态服务软件,可以通过该组态软件,链接市面上90%的PLC,通过HTTP协议通联PLC的读写,使用户能够通过一个直观的用户界面来连接,管理,监视和控制不同的自动化设备和软件应用程序.
Stars: ✭ 147 (+308.33%)
Mutual labels:  plc
TcBlack
Opnionated code formatter for TwinCAT.
Stars: ✭ 67 (+86.11%)
Mutual labels:  plc
TwinRx
.NET library for connecting with Beckhoff TwinCAT PLC via Reactive Extensions (Rx)
Stars: ✭ 16 (-55.56%)
Mutual labels:  plc
MacroUtils
MacroUtils is a collection of high-level APIs in order to make your life easier when writing STAR-CCM+ JAVA macros.
Stars: ✭ 32 (-11.11%)
Mutual labels:  siemens
Node Ethernet Ip
A Lightweight Ethernet/IP API written to interface with Rockwell ControlLogix/CompactLogix Controllers.
Stars: ✭ 163 (+352.78%)
Mutual labels:  plc
node-red-contrib-mindconnect
Node-RED Agent for the MindConnect API (community driven project)
Stars: ✭ 43 (+19.44%)
Mutual labels:  siemens
EasyModbusTCP.Java
EasyModbusTCP library for Java implementation
Stars: ✭ 76 (+111.11%)
Mutual labels:  plc
Modbus-STM32-HAL-FreeRTOS
Modbus TCP and RTU, Master and Slave for STM32 using Cube HAL and FreeRTOS
Stars: ✭ 272 (+655.56%)
Mutual labels:  plc
iec-checker
Static analysis of IEC 61131-3 programs
Stars: ✭ 36 (+0%)
Mutual labels:  plc
TF6100 Samples
Contains product samples for TF6100 TC3 OPC UA
Stars: ✭ 15 (-58.33%)
Mutual labels:  plc
vscode-st
Extension for VS Code to support Structured Text language.
Stars: ✭ 94 (+161.11%)
Mutual labels:  plc

S7Client

npm Dependencies Known Vulnerabilities Greenkeeper badge Maintainability Test Coverage Donate

Hi-Level API for node-snap7 to communicate with Siemens S7 PCLs (See compatibility).

  • Promise based, async/await support
  • Returns javascript objects with parsed var objects
  • EventEmitter: (connect, disconnect, connect_error, value)
  • Optional auto reconnect

API Documentation

Blog post about my SIMATIC S7 Web HMI project.

Usage

npm install s7client
const {S7Client} = require('s7client');

// PLC Connection Settings
const plcSettings = {
  name: "LocalPLC",
  host: 'localhost',
  port: 9102,
  rack: 0,
  slot: 2
};

// DBA to read
let dbNr = 1;
let dbVars = [
  { type: "CHAR", start: 0 },
  { type: "BOOL", start: 2, bit: 0 },
  { type: 'INT', start: 3 }
];

let client = new S7Client(plcSettings);
client.on('error', console.error);

(async function() {
  await client.connect();

  // Read DB
  const res = await client.readDB(dbNr, dbVars);
  console.log(res);

  // Write multiple Vars
  await client.writeVars([{
    area: 'db', dbnr: 1, type: 'BOOL',
    start: 5, bit: 2,
    value: true
  }]);

  client.disconnect();
})();

Special thanks to

  • Davide Nardella for creating snap7
  • Mathias Küsel for creating node-snap7

License & copyright

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].