Release notes

What changed in each version of Ganter Lab.

Ganter Lab 2026.13.0

v2026.13.0

What changed since Ganter Lab 2026.12 is below. Everything else works as it did.

Highlights

  • Ten new drivers. MQTT reads and writes equipment through a broker, as plain topics or as Sparkplug B. Omron reads CJ, CS and CP controllers over FINS (network or Host Link serial) and NJ/NX variables by name. SCPI instruments reaches bench multimeters, power supplies and loads over the network, a serial line, USB or GPIB. NI-DAQmx reads National Instruments hardware (cDAQ, USB and PCI Express). SNMP reads UPS units, PDUs, switches and room sensors. Generic serial and TCP reads equipment with its own text or byte protocol, such as weighing indicators and barcode readers. File reads the CSV, text, JSON and XML files other programs write, and can write files for them. Database reads and writes a table of SQL Server, PostgreSQL, MySQL or MariaDB, SQLite or any ODBC source. OPC DA reads classic OPC servers, and Fluke NetDAQ reads the 2640A/2645A and 2680A/2686A, both in a 32-bit helper that runs beside the station. Existing drivers grow too: Rockwell also reads PLC-5, SLC 500, MicroLogix and Micro800 controllers, and Modbus speaks ASCII on a serial line and RTU framing over TCP, for a serial-to-Ethernet converter.
  • Siemens S7-1200 and S7-1500 are read by name. A Siemens device chooses its Access: By address, as before, which every device saved before keeps, or By name, which reads and writes the CPU's variables by their names, optimized blocks included, with the type the CPU declares (an S7-1500 from firmware V2.9, an S7-1200 from V4.5). Discover tags offers the CPU's variables as a tree.
  • The station serves its data. The Connector's Servers folder holds the OPC UA server, the Modbus server and the station's own MQTT broker, the last two off until you turn them on. The Modbus server lets PLCs, HMIs and building systems read chosen tags, Logic variables and alarms over Modbus TCP, through its Register map, and write the rows you allow. Every MQTT broker, the station's own included, has a Publish card that sends chosen tags, variables and alarms as JSON or as Sparkplug B, and a row marked read and write takes values back. The OPC UA server serves the list you build in Served nodes.
  • The Connector says what to set on the equipment. When equipment turns the station away because of one of its own settings, the device's page says which setting, where it is, the values to type, ready to copy, and the file the equipment needs: PUT/GET access or an optimized block on a Siemens CPU, a Beckhoff PLC without an AMS route, an OPC UA server that does not trust the station, a Mitsubishi CPU without its connection, a database server that refuses the station, an AVEVA PI or MQTT broker sign-in. A connection that does not open says whether a firewall may block its port. A driver that needs something the package cannot carry (NI-DAQmx, VISA, an ODBC driver, the OPC DA components, the runtime Fluke's library needs) says what to install, where to get it and what happens next.
  • Discover tags from a device's page. Discover tags, on a device's Tags card, scans that device and offers only the points it has no tag for, ticked, with Add tags.
  • Remote access has a page of its own, on the menu right after Agent. Each tablet or computer that opens the station over the network appears under Connected now, Identify shows a code on its screen, and Configure this device gives it a name, a start screen it can be locked to, a sign-in or a fixed user, a return to its start screen after idle minutes, or view-only.
  • Your brand on the station. Settings, Branding takes a Logo, a Logo for dark theme, an Icon and a Name: the logo replaces Ganter Lab in the title bar and on the sign-in screen, the name and icon dress the window, the taskbar, the browser tab and the notification area, and the logo is what a report layout that names no image prints.
  • Welcome explains the whole program. The startup page walks every area of the program in the order the data flows, each with a drawing of the area at work, playing by itself until you take a step.
  • A report to Ganter can carry your screen. Send feedback, in the title bar on every page, captures the window and opens the report form with the picture, which you can leave out. A report goes without an account too, and the assistant can draft one for you to read and send.
  • A station can run on a perpetual license. Besides the subscription, the Ganter Lab website sells a perpetual license, paid once per station, that covers every version of the year it is bought in and earlier. The station activates it once, by signing in to the account over the internet, and keeps it offline from then on: it never needs to reach the website again, not even when the account session ends without anyone signing out. The Account page says that the station runs on a perpetual license and which versions it covers. Signing out gives the license back to the account, and the question before signing out says so.
  • An update never takes a station off its perpetual license unasked. A version newer than the perpetual license covers shows in Settings, Updates with the warning that installing it leaves the perpetual license. Automatic updates do not download it, the status bar does not announce it, and downloading or installing it by hand asks first: Leave the perpetual license or Keep the perpetual license. A station that runs such a version anyway says so on the Account page, with what brings the license back: renewing it on the website, or reinstalling the last covered version, whose installer is on the subscription page of the website.

After updating

  • The OPC UA server serves only the nodes you list. It moved from Settings to the Connector's Servers folder, with its Status, Configuration and Client access cards and the new Served nodes list of tags, Logic variables, alarms and device commands. The list starts empty, so after the update the server serves nothing until you build it; its page says so. A listed tag keeps the NodeId it had, and device objects now sit under a Devices folder. A server that accepted sessions stays on; one whose authentication was Disabled is now off, since its switch is what turns it off. Stopping or restarting it no longer stops the readings, the Logic or the recordings.
  • Equipment access, the certificates of the OPC UA equipment the station reads, moved to the OPC UA driver's page.
  • Remote access moved from Settings to its own page, under two new permissions, View remote access and Configure remote access. Every role that viewed the Connector can view it, and every role that configured the Connector can configure it.
  • The Connector shows only the drivers in use. Drivers are no longer switched on and off: they are added from the catalog under Drivers and removed with Remove driver, and every driver the station already used stays added.
  • An integer tag whose Scale or Calibration changes the value now has decimals in the Logic, the dashboards and MQTT: 235 scaled by 0.1 reads 23.5, not 24. The OPC UA node and the Modbus map keep the tag's own type. A procedure selector bound to such a tag refuses a value with a fraction instead of rounding it.
  • Logic, Images no longer offers Set as logo: the Logo in Settings, Branding is what a report layout that names no image prints, and a layout that printed the image marked as logo keeps printing it.
  • The new role permission Send reports to Ganter is on in every role.
  • The OCPP central system and the LoRaWAN network server present a certificate signed by a root of the station's own, which names the station and its addresses, so a charge point that checks the server's name and a gateway with its default settings accept the station. On every station that already had charge points or gateways, each of them needs the station's new file, GanterLabConnector-<station>.pem, installed once, whether or not the card that prepares a charge point or a gateway says that the station's file changed; that card shows the file and the address by the station's name. The file never needs replacing again when the station's name or addresses change.
  • The Terms of Use describe the perpetual license, and the contact with the website every 90 days now applies to a station licensed by a subscription. They also state that nothing in them restricts the rights that the licenses of third-party components give. The station shows them once more, to be accepted again.

Changed

Connector

  • The column's tree has two roots: Drivers, with the drivers in use, and Servers. Selecting Drivers opens the catalog of every driver the station carries, the ones On this station first and the others by category (PLCs, Industrial protocols, Instruments and acquisition, Wireless, Web and APIs, Files and databases, Test), with Add driver.
  • The + menu follows the tree: Add driver, then each driver with what it can hold and its own rows. A right-click on any row offers the commands of its bar.
  • Redfish, AVEVA PI, HTTP, MQTT over TLS, OCPP and LoRaWAN accept the equipment's own certificate once it is approved on the driver's Equipment access card, without installing anything in Windows. The device waits with Review certificate, and a certificate that changes is said.
  • A charge point's or a LoRa gateway's page tells what to configure on it: the server address for each of the station's addresses, the identity, the TLS it needs and the station's certificate file.
  • Each level of the tree says its own error and names the items below it that hold one ("3 tags with errors: C3, Opt_Int, T5"); a device on a failed line or broker, and a tag of a device that is not connected, point to it instead of repeating the failure. An error leaves once its cause is over, and the devices table's Last error gives the cause in the driver's words, on three lines at most.
  • A device waiting for its address, its file, its EUI or its data source says which field is missing, and Reconnect says the same when greyed.
  • A tag's Used by card also lists the Modbus server, OPC UA and MQTT rows that serve it, and Replace all moves them to the new tag.
  • Siemens: a text tag says whether the PLC declares a STRING or a WSTRING (Text type in the PLC), a STRING is written in the code page TIA Portal shows, so accented letters arrive as typed, and a text longer than the tag holds is refused instead of cut.
  • 64-bit integers are written and read exactly, and a value outside the tag's type is refused with the type's range.
  • A Beckhoff device can name the PLC's own AMS Net Id.
  • A plain MQTT device has a Maximum time without a message (s), past which a quiet topic fails its read.
  • A refusal from an HTTP, Redfish or AVEVA PI service says the status and what the service answered, without the device's credentials.
  • BACnet devices connect on a computer with two or more network interfaces, and by host name.
  • A Modbus TCP scan recognizes a unit already configured and offers Open instead of a duplicate. A Database scan of more than 100 tables offers the ones it read and says it stopped.
  • The list of devices a scan found takes the free height of the window.

Logic

  • A variable's and an alarm's editor has a Used by card: the expressions, actions, alarm conditions, dashboard components, Modbus, OPC UA and MQTT rows that use it.
  • A variable whose output is an Icon, an Image or a Color is drawn wherever its value shows, and named in text readouts, instead of writing its source.
  • A memory variable's Write answers on a line under the box: Value written. or why the value was refused.
  • An expression, a condition or an action script that reads .Value of a point that already is a value is refused with the reason, and an expression that yields no value is a gap with bad quality instead of a good empty value.
  • A section has one name in every language, the one the tree shows: the New folder menu, the message that refuses a folder filed under another section and the line that says where an action or a trigger is filed now write Variables, Alarms, Actions and Triggers, as the tree and the addresses do.

Process

  • A model's action can run a Logic action at a run's Start or Completion, and the Logic reads the run that ended under Process.<Model>.<Unit>.LastRun: its status, verdict, times, metadata and each criterion's result.
  • A model's action can write a Database row per run to a table of a factory database, for traceability. The run record's Database rows shows each row with its attempts and Send again.
  • A run that ends Failed records which step broke, and its record says it under Ended by a failure.
  • The status bar counts each run once, a held run no longer also counting as recording: "Process: 2 recording · 1 held".

View

  • A Gauge whose reading does not fit writes #### instead of drawing it over its arc, and a pie chart writes a label's share on its own line.
  • The Alarm banner shows the pending alarms in the editor too.
  • When a symbol's type changes, the connection points that had the old type follow it.
  • A connection type's thickness shows two decimals and is refused under its field when it is not a number.

Window and the rest of the program

  • Each status bar indicator wears the mark of its area and starts with its name: "Connector: online", "Process: 1 recording", "Alarms: 2 active (1 unacked)". The free-mode countdown opens Account.
  • Creating never opens the new item: it appears marked in its parent's list. Deleting lands on the parent, selected and open in the tree.
  • A right-click menu closes as its row is pressed, before a confirmation opens.
  • An error on the status bar leaves by itself after about ten seconds.
  • A view-only device is refused on the station too, not only in what it draws.
  • The agent gets tools for the Modbus server, the station's MQTT broker, the MQTT publication and the OPC UA list, scans one device, reads why a tag or a device fails, and drafts a report to Ganter for the person to send (Reports (draft)).
  • Texts and help in the other languages follow the screen and their glossaries more closely. Among them, in Spanish (Mexico) the drivers folder is called Drivers and shows whole on the Welcome page and in the Connector tree, and in German and Spanish the card that lists a device's tags is called Tags.
  • The help describes every new driver, server and page, in every language.

Fixed

Connector

  • The Rockwell EtherNet/IP driver connects again: from version 2026.10 to 2026.12 it could not connect to any controller. Its writes, and writes to an Omron NJ/NX variable by name, reach the controller again.
  • A Siemens CPU that refuses PUT/GET no longer looks like a pulled cable, and its tags carry the device's notice.
  • Saving a tag no longer blanks the readings of the station's other tags, and editing a tag no longer turns the device's other tags red for a moment.
  • A write to one device no longer holds the writes to every other device while it waits.
  • A Modbus TCP device that reads the station's own Modbus server no longer waits for its timeout on a write.
  • A Redfish, HTTP or AVEVA PI write after a quiet moment is no longer lost on a closed connection.
  • A LoRaWAN sensor keeps its session when it is edited, and an OCPP charge point reads Online while connected, before its first charge and after a reconnect.
  • A Beckhoff read the PLC refuses leaves the device connected, with the reason on the tag.
  • A Rockwell Float or Double read past the end of its array is refused instead of reading a tiny number.
  • A value saved as 0 or as its type's default (a LoRaWAN silence of 0, a metadata counter starting at 0) is no longer replaced by the stored default.
  • An OPC UA equipment whose certificate changes under a running session says so instead of reconnecting silently.
  • Clearing a device's password no longer says it cannot be read on this Windows account.

Process and View

  • A unit held by its interlock refuses writes to its sources from the moment it is held, also right after the station starts and after a model is saved or deleted, and the interlock cards follow the monitor's state as it changes.
  • A dashboard component bound to a Logic variable in a folder reads it.
  • Aborting a run after Hold and Resume records it as aborted, not failed, and a setpoint the equipment took keeps its record when Abort arrives first.
  • A click on a table's row button is no longer lost while the page redraws, and the table keeps its sideways position.
  • A text box no longer loses a key typed while a live screen redraws.
  • Two Process folders with the same path in different categories are told apart.
  • Moving a Process model, report or label into a folder opens that folder in the tree.

Logic, Settings and Account

  • Moving a Logic item says "Item moved." in the station's language instead of a raw key.
  • Signing out of the account shows Stop waiting while the station waits for the site.
  • The "On this page" index keeps lit the section you clicked.

Ganter Lab 2026.12.0

v2026.12.0

What changed since Ganter Lab 2026.11 is below. Everything else works as it did.

Highlights

  • Station licenses are signed by the site. A station that holds a seat of a subscription now keeps a license the Ganter Lab website signs for that station, valid for 90 days. Every time the station reaches the site (when it starts, once a day, or with Check again on the Account page) the 90 days start over, so a station connected to the internet confirms its license by itself when it starts after this update. While a station with a seat has no confirmed license it runs in Free mode, and the Account page and the menu say why: License not confirmed by the site, or License confirmation expired with the date, with Check again as the reply. The Terms of Use now say that a licensed station connects to the website at least once every 90 days, and the station shows them once more, to be accepted again.
  • The program has a tour. Take the tour, on the Welcome page and in the help panel, walks 25 stops across every page of the menu, from the devices to the screens, with short recordings of the real program where something happens. The tour changes nothing on the station, and it ends when you leave the page of its stop.
  • A reading that stops arriving counts as a failed read. When a device stays connected but a tag's value stops coming, past its read interval and a margin the tag reports the read as failed: what the tag does when The device did not answer applies (hold the last reading, replace it with a value, or show the error), the Logic, the dashboards and the recordings see bad quality, and the Connector shows the tag as silent, in amber, under Issues, still dated by its last measurement.
  • Histories finds a run by what it recorded. The search matches a run's metadata (a serial number, a lot) as well as its name, and it ignores case, accented letters included. Runs recorded before the update are found the same way once a pass in the background has read them, and until then the list says so. The searches of Events (alarms, occurrences and the journal) ignore case too.
  • Matter pairs Wi-Fi devices and commands them. The Matter driver's page has a Networks card: Add Wi-Fi network (filled in with this computer's Wi-Fi name), Add Thread network and Remove network, with the Wi-Fi password and the Thread dataset kept encrypted on the station. Pair device stays greyed with the reason until a network exists, and says which network the device joins. A paired device's tags come from the device itself, named in the station's language (on and off, level, colour temperature, window covering, thermostat, fan and the measurements), and the ones the device lets you change write to it, such as switching a light on and off or setting its brightness. A pairing that fails says why and is written to the journal.
  • Numbers read the same everywhere. Live values, the Logic, the dashboards, the Process screens, reports, labels, travel sheets and exports write a number with the tag's decimals and the station's number format, without the residue of the computer's arithmetic (239.05 °C, not 239.050003 °C). A Float reading enters limits, alarms, verdicts and recordings as the value it shows, and 64-bit integers keep every digit.

Changed

  • Settings, Updates opens with where the station stands: not checked yet, up to date, the last check did not go through, a version available or ready to install, with the installed version and the time the feed last answered. Ignore this version stops the status bar announcing that version until a newer one comes out. The status bar's update notice sits at the end of its left group and says only that an update is available, or that it carries important fixes; the running version is read in Settings, Updates, and no longer in the status bar.
  • Each browser on the network picks its own theme, starting from the station's and following it until it picks one. Only the station window changes the station's theme.
  • The embedded OPC UA server no longer starts on a port another program listens on. When its port is taken, the Server could not start card offers Use port N, the next port the station accepts. The OPC UA listen port and the agent access port refuse a port another station service or another program holds, and say so under the field.
  • The OPC UA driver dates each reading by the time stamp the server gives it.
  • Modbus TCP and RTU read and write a single 16-bit register as Int16 or UInt16. Most significant word first shows only for the types that span two registers, and a Boolean in a coil or a discrete input has no byte order to choose.
  • A Write only tag is never read: it has no read failure behaviour and no read interval, and it does not count under Issues.
  • A simulated tag can declare a recurring outage in its address (outage and outageEvery), to watch how a tag holds or replaces a failed read without equipment.
  • A device whose driver dials a host waits for one instead of trying this computer, and a new device starts on the port its driver dials, shown as the hint of an empty Port box. Devices saved before keep connecting to the address they had.
  • The run record shows the run's metadata (the serial number and every other recorded field) in its header, and the evaluation card names each verdict in the station's language. Between two runs, the Run state card calls the verdict it still shows Last run verdict.
  • The agent reads the samples a run recorded, live or finished, with the new process_samples tool of the Process read area: up to 500 samples as recorded, or a longer stretch as 500 slices with each channel's minimum, maximum and mean. process_start refuses a metadata value the run would not record and names the fields the procedure asks for. tag_read, tag_write and logic_read say whether a tag is still communicating and which replacement is in force, and a write the driver refuses answers with the driver's own reason.
  • A write the driver refuses answers whoever asked for it (the agent, the Logic, an OPC UA client) with the driver's reason, the same one the journal line carries. An OPC UA client whose write the device refused hears BadDeviceFailure instead of BadNoCommunication, and a Mitsubishi refusal names the end code the PLC answered.
  • Every control has an accessible name, the one the screen shows, and every toggle tells a screen reader whether it is on.
  • A menu row that opens a list (Move to, New device, New folder) opens it on a press and with the right arrow, and the left arrow folds it back.
  • The Desktop Privacy Policy lists the update check, which the site counts by day, version and channel without keeping the IP address, and says that Cloudflare also stores and delivers the installer and the updates. The station shows it once more, to be accepted again.
  • Forgot the admin PIN? shows only once the primary administrator has a PIN.
  • Texts that still showed in English in the other languages are translated: driver descriptions, address and discovery hints, occurrence notes, type names and the station's lock messages.
  • The help describes each page as the program shows it, in every language, and leads to the tour from Getting started and Welcome.

Fixed

View

  • Dashboard components keep their drawing in small cells. Chart titles, legends and long names end in an ellipsis with the whole text in the tooltip, a small Gauge numbers fewer divisions, bar and pie charts keep their labels clear of the plot, a Point table keeps its readings at their width and shows #### instead of cutting a number, an Alarm banner keeps each row's Ack in view, and a command key cut short carries its caption as its tooltip.
  • A command shows its answer even in a one-row cell, and the Status LED keeps its state under a corner title.
  • The chart toolbar no longer covers the title or the legend, and the highest number of a value axis is never drawn under the legend. A narrow line chart keeps a readable plot. Hiding the first series from the legend hides only that curve, not the bands, annotations and reference lines, and an evaluation band's name is written where no line crosses it.
  • A chart follows a series' new label, colour or decimals after a save.
  • A new folder in the View list opens its name field again, and so do Rename folder and the new folder of Move to. Escape in that field leaves the list open.
  • The View list follows a renamed screen at once, and an autosave of the editor no longer undoes a list command or an agent's write made meanwhile.
  • A Line chart or KPI card no longer reserves samples while its address is being typed.
  • The Setpoint slider's keys stay in place when a value is armed or released, and its release key says why it is refused.
  • The Gauge, KPI card, Progress and Value write NaN, decimals and large counts the same way, and a meter never draws the overflow mark over a word made of figures.
  • A Toggle is added at 4 x 1 cells, so its label keeps its first letters in the editor.
  • The Interlock banner draws no Rearm for a role that may not run procedures.

Process

  • A run report names each channel by the alias the run froze for it in every table, and names the target of a recipe write (a tag by its address, a variable by its channel) instead of an id.
  • The run's XLSX writes the result as the screen does (OK, NOK, Indeterminate, None).
  • PDF reports break column headers only between words, write severities and outcomes as the screen does, spread note labels instead of printing them over each other, and print their charts on a station started in the tray.
  • A completion command with no verdict ticked stays None, in a copy of its model too.
  • In Histories, opening another run starts its record at the top, a long note reads whole in its tooltip, a label generated from the run shows at once, and the run list says it is loading and says why when the index cannot be read. Opening, exporting or resuming a run whose file is gone is refused instead of creating an empty run.
  • The Productivity card tints an outcome count only when it is above zero.
  • The settings column of the Process screens opens at its top when another row or unit is picked.
  • Pickers fit their longest option in every language: the Channels grid, Armed, Time counting and a criterion's anchor, mode and limit.

Logic

  • An editor open on a variable, action, trigger or alarm deleted elsewhere closes, and the feed says so.
  • Choosing a variable shows its own value at once.
  • The alarm editor says a refused condition under the condition editor.
  • The Logic pickers fit their columns, and names keep a readable width in a narrow window.
  • The Logic page's live refresh no longer races what is being typed.

Connector

  • Refresh, and a change made in another column or window, keep every Connector column where it was, with its selection and open rows.
  • Enable and Disable on a device or a serial line redraw it at once and stay.
  • A tag whose read fails carries the red marker in the tree, which clears as soon as a reading arrives. A tag the station does not read shows the grey dot, and a device being applied again reads Not known yet instead of flashing red.
  • A tag address the driver refuses says why, on the tag and in the journal.
  • OPC UA discovery lists what a server really serves: the points of another Ganter Lab station, nodes of open rank or generic type, each node once, and no point that never reads. Tags a discovery imports follow the device's poll interval.
  • The embedded OPC UA server comes back after its Application name changes, whatever letters the name holds, dates a held value by when it was measured, and declares each variable's own type.
  • A refused number (a scale factor of 0) or checkbox puts the stored value back in the box.
  • A Modbus RTU unit id outside 1 to 247, or a host that is neither an address nor a name, is refused where it is typed instead of breaking the device panel. A Modbus tag made writable moves to the writable register class.
  • A device lists its tags by name, and the tag grid's columns fit their options in every language.
  • A LoRaWAN sensor whose registration is refused says which field was refused, and the network server is no longer restarted at every retry.
  • A session to an OPC UA server on this computer no longer journals false errors.
  • Matter pairing works with real Wi-Fi bulbs over Bluetooth, retransmits as the specification asks, and a new Fabric no longer expires.

Settings, Account and Users

  • Delete on the backup scheduled for restore is greyed with the reason, and backup dates follow a change of date format at once.
  • The remote access switch reads off again after Cancel.
  • Create an account and Manage subscription open the site the station signs in to.
  • Send in Feedback greys while a report is on its way and says what is missing.
  • A long message in the status bar no longer cuts the free-mode countdown.
  • The station's roles are listed in the same order everywhere, and a factory role's description reads in the screen's language.
  • A trust decision taken with nobody signed in reads as taken at this station.

Window and help

  • The theme follows Windows from the first page the station opens.
  • Enter or Escape in a tree row's name field gives the keyboard back to the tree.
  • A state pill never breaks its label.