Repository navigation
v0.2.0
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.