All Projects → mathiask88 → Node Snap7

mathiask88 / Node Snap7

Licence: mit
node.js wrapper for snap7

Labels

Projects that are alternatives of or similar to Node Snap7

SoftBeckhoff
Virtual Beckhoff PLC for local testing with docker support
Stars: ✭ 40 (-64.29%)
Mutual labels:  plc
Python Snap7
A Python wrapper for the snap7 PLC communication library
Stars: ✭ 317 (+183.04%)
Mutual labels:  plc
Homeautomation.codesys3
Home Automation system build in CoDeSys 3 with MQTT communication to any third party Home Automation software
Stars: ✭ 55 (-50.89%)
Mutual labels:  plc
moka7-live
S7 PLC communication library for Java, based on Moka7
Stars: ✭ 28 (-75%)
Mutual labels:  plc
Iotclient
这是一个物联网设备通讯协议实现客户端,将会包括主流PLC通信读取、ModBus协议、Bacnet协议等常用工业通讯协议。本组件终身开源免费,采用最宽松的MIT开源协议,您可以随意修改和商业使用(商业使用请做好评估和测试)。
Stars: ✭ 311 (+177.68%)
Mutual labels:  plc
Icsmaster
ICS/SCADA Security Resource(整合工控安全相关资源)
Stars: ✭ 582 (+419.64%)
Mutual labels:  plc
iot-master
物联大师是开源免费的物联网智能网关系统,集成了标准Modbus和主流PLC等多种协议,支持数据采集、公式计算、定时控制、自动控制、异常报警、流量监控、Web组态、远程调试等功能,适用于大部分物联网和工业互联网应用场景。
Stars: ✭ 119 (+6.25%)
Mutual labels:  plc
Sharp7
Nuget package for Sharp7
Stars: ✭ 89 (-20.54%)
Mutual labels:  plc
Libplctag
This C library provides a portable and simple API for accessing Allen-Bradley and Modbus PLC data over Ethernet.
Stars: ✭ 314 (+180.36%)
Mutual labels:  plc
Clientserverproject
一个C-S模版,该模版由三部分的程序组成,一个服务端运行的程序,一个客户端运行的程序,还有一个公共的组件,实现了基础的账户管理功能,版本控制,软件升级,公告管理,消息群发,共享文件上传下载,批量文件传送功能。具体的操作方法见演示就行。本项目的一个目标是:提供一个基础的中小型系统的C-S框架,客户端有三种模式,无缝集成访问,winform版本,wpf版本,asp.net mvc版本,方便企业进行中小型系统的二次开发和个人学习。同时网络组件方便的支持读写三菱和西门子PLC的数据,详细见Readme
Stars: ✭ 873 (+679.46%)
Mutual labels:  plc
TcUnit-Runner
Program that makes it possible to automate runs of TcUnit unit tests
Stars: ✭ 23 (-79.46%)
Mutual labels:  plc
Fuxa
Web-based Process Visualization (SCADA/HMI/Dashboard) software
Stars: ✭ 262 (+133.93%)
Mutual labels:  plc
Isf
ISF(Industrial Control System Exploitation Framework),a exploitation framework based on Python
Stars: ✭ 690 (+516.07%)
Mutual labels:  plc
openHAB-Simatic
openHAB binding for Siemens Simatic S7 PLC
Stars: ✭ 15 (-86.61%)
Mutual labels:  plc
Mqtt Siemens S7 300
MQTT library block written in Siemens SCL for S7-300 PLC with CP343-1
Stars: ✭ 57 (-49.11%)
Mutual labels:  plc
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 (-56.25%)
Mutual labels:  plc
Easymodbustcp.net
Modbus TCP, Modbus UDP and Modbus RTU client/server library for .NET implementations
Stars: ✭ 358 (+219.64%)
Mutual labels:  plc
Pycomm3
A Python Ethernet/IP library for communicating with Allen-Bradley PLCs.
Stars: ✭ 102 (-8.93%)
Mutual labels:  plc
Tcunit
An unit testing framework for Beckhoff's TwinCAT 3
Stars: ✭ 74 (-33.93%)
Mutual labels:  plc
Hslcommunication
An industrial IoT underlying architecture framework, focusing on the underlying technical communications and cross-platform, cross-language communication functions, to achieve a variety of mainstream PLC data reading and writing, to achieve modbus of various protocols read and write, and so on, to support the rapid construction of industrial upper computer software, configuration software, SCADA software, factory mes system, To help enterprise Industry 4.0 take-off, to achieve intelligent manufacturing, smart factory goals. The main PLC contains Siemens, Mitsubishi, Omron, Panasonic, Modbus, AB-PLC, Redis
Stars: ✭ 816 (+628.57%)
Mutual labels:  plc

node-snap7

npm Node version Travis AppVeyor npm

Current node-snap7 version: 1.0.5
Current snap7 version: 1.4.2

In my spare time I am working on a node-addon-api rewrite and want to switch from prebuild-install to prebuildify.
The current S7Server implementation has some bugs, please use with caution.

About

This is a node.js wrapper for snap7. Snap7 is an open source, 32/64 bit, multi-platform Ethernet communication suite for interfacing natively with Siemens S7 PLCs (See compatibility).

Installation

Install with:

npm install node-snap7

node-snap7 uses prebuild and prebuild-install for handling prebuilt binaries. See this list of supported prebuilt platform binaries. When installing node-snap7 prebuild-install will install prebuilt binaries from GitHub if they exist and fallback to a compile step if they don't.

If you don't want to use the prebuild for the platform you are installing on, specify the --build-from-source flag when you install.

For building from source you need the following requirements:

Special thanks to

  • Davide Nardella for creating snap7

How to use

API

Client Example

var snap7 = require('node-snap7');

var s7client = new snap7.S7Client();
s7client.ConnectTo('192.168.1.12', 0, 1, function(err) {
    if(err)
        return console.log(' >> Connection failed. Code #' + err + ' - ' + s7client.ErrorText(err));

    // Read the first byte from PLC process outputs...
    s7client.ABRead(0, 1, function(err, res) {
        if(err)
            return console.log(' >> ABRead failed. Code #' + err + ' - ' + s7client.ErrorText(err));

        // ... and write it to stdout
        console.log(res)
    });
});

Server Example

var snap7 = require('node-snap7');

var s7server = new snap7.S7Server();

// Set up event listener
s7server.on("event", function(event) {
    console.log(s7server.EventText(event));
});

// Create a new Buffer and register it to the server as DB1
var db1 = new Buffer(100).fill('ÿ');
s7server.RegisterArea(s7server.srvAreaDB, 1, db1);

// Start the server
s7server.StartTo('127.0.0.1');

// Close the server after 20s in this example
setTimeout(function() {
    s7server.Stop();
    s7server.UnregisterArea(s7server.srvAreaDB, 1);
}, 20000);

Have a look at the resourceless server example here.

License & copyright

Copyright (c) 2019, Mathias Küsel

node-snap7 is licensed under the MIT license. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.

node-snap7 builds on the excellent work of the snap7 framework from Davide Nardella. Snap7 is issued under the GPL/LGPLv3 (see ./deps/snap7/gpl.txt ./deps/snap7/lgpl-3.0.txt).

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].