The ep5 Educational Broadcasting Foundation

education in technology for schools and public broadcasting

ep5BAS on Protos X fieldbus

Please see note at bottom of page.

Objective:

Construct the template of an interface between a sophisticated and complex process control strategy implemented in a .NET program and an Ethernet-based I/O communication faculty using Modbus to read from and write to real-world sensors and effectors in actual field conditions.

Resources - Software:
  • C# programming producing run-time executables for Windows10Pro on conventional desktop computers and their industrial, hardened, or special-purpose equivalents. Please note: Linux is currently not part of this project.
  • NModbus4 library for .NET
  • Protos X Utility
  • Modbus scan and test utility
Resources - Hardware:
  • Protos X fieldbus hardware using TCP
  • Industry-standard I/O devices: sensors and actuators
  • Technology demonstrator using the automation of an actual building
Documentation:
Status:
  • ✓ Preliminary design, layout, and component procurement
  • ✓ Initial testing: bus coupler configuration, bidirectional communication, and reading from and writing to digital points
  • ✓ C# code to open connection to bus coupler and demonstrate control function
  • Introduction of machine-state variable as interface between business logic and real-world I/O
  • ✓ Combination of digital and analogue demo programs into one
  • Add main event loop iteration to the demo program
  • Refine modularity along functional lines
  • ✓ Begin construction of the formal full-featured test facility
Demonstration code:

We are changing how we deal with the source code for this project. It will no longer be presented here. We will make it available on GitHub (where else?) in public repositories. Please check back here for the details. Initial availability will begin within the first month or so of 2026.

All public ep5BAS repositories are listed below, including some that are not based on the Protos X fieldbus.

These are now available on GitHub: