Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 11:52
· 20 commits to main since this release

Sulfur 0.2.0

🇬🇧 English

This release turns Sulfur into a multi-protocol test bench: four new protocol modules (Siemens S7, PLCSim Advanced, HTTP / REST, NTP), a much more complete OPC UA module, and two cross-protocol modules, Simulator and Trends.

New modules

Siemens S7 (S7comm)

  • Simulated PLC: I / Q / M / DB memory, simulated points, SZL identification, RUN / STOP, write protection, memory explorer, injectable faults.
  • Client: rack / slot or TSAP addressing, typed and raw reads / writes split to the negotiated PDU size, CPU identification, CPU start / stop, watches published as points.
  • Works with S7-1200 / 1500 CPUs that allow PUT/GET access (port 102, rack 0, slot 1 for an S7-1500).

PLCSim Advanced (Windows)

  • Drives S7-PLCSIM Advanced virtual PLCs through the Simulation Runtime API: create instances, power on / off, RUN / STOP, memory reset, IP address, tag table, watches.
  • Writing to inputs here simulates the process. The CPU keeps the value, unlike a PUT/GET write to an input, which is overwritten at the next cycle.
  • Remote PC: connect to the Runtime Manager of another PC (open its port in the PLCSIM Advanced control panel, 50000 by default).
  • On a PC without PLCSIM Advanced installed, the module asks for the folder containing the API DLLs.
  • Not available on Linux / macOS: the API is a native Windows library.

HTTP / REST

  • Server with simulated variables, REST API, templated routes, authentication, HTTPS and webhooks.
  • Client with watches.

NTP

  • Server with a simulated clock: offset, fixed time, drift, stratum.
  • Client.

Simulator

  • Node-RED-style flow editor. Flows keep running in the background once deployed.
  • Nodes: triggers, points, ramp, fault, logic, JavaScript function, generators and debug.
  • Fault injection: delay, no response, disconnection, Modbus exception, OPC UA status code, frozen values.
  • Recording of point changes, replayed as a flow.

Trends

  • Real-time chart of points from every protocol: sliding window, zoom, tooltip, shared or split layout.
  • CSV export.

Improved modules

OPC UA

  • Server: arrays and structured types, methods, threshold alarms and events, history (HistoryRead), NodeSet2 XML import.
  • Client: method calls, history reads, events and acknowledgement.

Modbus

  • Several devices (Unit ID) on one server, device identification (function 43 / 14), read / write multiple (function 23), register explorer.

Interface

  • The Simulator, Trends and PLCSim Advanced modules are organised in tabs.
  • Each module remembers its last tab (server / client).
  • New Startup page setting (by default, the last page viewed).
  • The Simulator side panel can be resized.
  • A section that is alone on its page uses the full window height.

Fixes

  • A dropped connection could crash the OPC UA client.
  • Switch-node rules in the Simulator are displayed correctly again.

Project

  • Sulfur is now licensed under Apache-2.0.
  • Contributions require signing a CLA, by commenting on your first pull request. A contribution guide is available in English and French.
  • The roadmap introduces standard and premium editions.

🇫🇷 Français

Cette version fait de Sulfur un banc de test multi-protocoles : quatre nouveaux modules de protocole (Siemens S7, PLCSim Advanced, HTTP / REST, NTP), un module OPC UA bien plus complet, et deux modules communs à tous les protocoles, Simulateur et Courbes.

Nouveaux modules

Siemens S7 (S7comm)

  • Automate simulé : mémoire I / Q / M / DB, points simulés, identification SZL, RUN / STOP, protection en écriture, explorateur de mémoire, défauts injectables.
  • Client : adressage par rack / emplacement ou par TSAP, lectures / écritures typées et brutes découpées selon la taille de PDU négociée, identification de la CPU, démarrage / arrêt de la CPU, surveillances publiées comme points.
  • Fonctionne avec les CPU S7-1200 / 1500 qui autorisent l'accès PUT/GET (port 102, rack 0, slot 1 pour un S7-1500).

PLCSim Advanced (Windows)

  • Pilote les automates virtuels de S7-PLCSIM Advanced par l'API Simulation Runtime : création d'instances, mise sous / hors tension, RUN / STOP, effacement général, adresse IP, table des variables, surveillances.
  • Écrire les entrées depuis ce module simule le procédé. La CPU garde la valeur, contrairement à une écriture PUT/GET sur une entrée, qui est écrasée au cycle suivant.
  • PC distant : connexion au Runtime Manager d'un autre PC (port à ouvrir dans le panneau de contrôle de PLCSIM Advanced, 50000 par défaut).
  • Sur un PC sans PLCSIM Advanced installé, le module demande le dossier qui contient les DLL de l'API.
  • Indisponible sous Linux / macOS : l'API est une bibliothèque Windows native.

HTTP / REST

  • Serveur à variables simulées, API REST, routes à gabarit, authentification, HTTPS et webhooks.
  • Client avec surveillances.

NTP

  • Serveur à horloge simulée : décalage, heure fixée, dérive, strate.
  • Client.

Simulateur

  • Éditeur de flux à la manière de Node-RED. Une fois déployés, les flux tournent en continu en arrière-plan.
  • Nœuds : déclencheurs, points, rampe, défaut, logique, fonction JavaScript, générateurs et débogage.
  • Injection de défauts : délai, absence de réponse, coupure, exception Modbus, code d'état OPC UA, valeurs figées.
  • Enregistrement des évolutions de points, rejouées sous forme de flux.

Courbes

  • Graphique temps réel des points de tous les protocoles : fenêtre glissante, zoom, info-bulle, affichage superposé ou séparé.
  • Export CSV.

Modules améliorés

OPC UA

  • Serveur : tableaux et types structurés, méthodes, alarmes à seuils et événements, historique (HistoryRead), import de NodeSet2 XML.
  • Client : appel de méthodes, lecture d'historique, événements et acquittement.

Modbus

  • Plusieurs équipements (Unit ID) sur un même serveur, identification de l'équipement (fonction 43 / 14), lecture / écriture multiple (fonction 23), explorateur de registres.

Interface

  • Les modules Simulateur, Courbes et PLCSim Advanced sont organisés en onglets.
  • Chaque module retient son dernier onglet (serveur / client).
  • Nouveau réglage Page de démarrage (par défaut, la dernière page affichée).
  • Le panneau latéral du Simulateur est redimensionnable.
  • Une section seule sur sa page occupe toute la hauteur de la fenêtre.

Corrections

  • Une coupure de connexion pouvait faire planter le client OPC UA.
  • Les règles du nœud Aiguillage du Simulateur s'affichent de nouveau correctement.

Projet

  • Sulfur est désormais sous licence Apache-2.0.
  • Les contributions demandent de signer un CLA, par un commentaire sur sa première pull request. Un guide de contribution est disponible en anglais et en français.
  • La feuille de route présente les éditions standard et premium.