This is a draft user story, and will be modified as we settle on an implementation.
User creates a CODESYS project as normal, with no heed of SparkplugB. This could also be any existing project.
User sets up a list of Variables they want to make readable / writeable over Sparkplug B. This could be similar to, or make use of Symbol Config
The user then "imports" this symbol config to their own project, generating the required code to use SparkplugB
User defines the Saprkplug connnection parameters (Group Name, EoN name, Device Name, MQTT Server URL, etc etc)
There is a mechanism to define the Quality of each CODESYS Variable (Sparkplug: is_null) and a method to define the timestamp if wanting to define this seperately to time the payload is sent.
User "imports" the EoN symbolconfig to the SCADA project, specifying the GroupName, EoN name, Device Name. a structure is created, allowing the SCADA Node access to all the variables as GroupName.EoNName.DeviceName.TagName(s)
There is also a Scan Network option, which can generate all SparkplugB symbols available on the network, and their associated EoN/Device Names.
User then creates whichever HMI graphics, supervisory control logic, alarms whatever they want.