How to build a Modbus driver in Go?

This article serves as a practical guide into how to build a Modbus driver. I use the Go (Golang) programming language because I like it . However, the principles outlined should apply to any stack.

I happen to be a software engineer who works in SCADA. What does that mean?  it means that a lot of my days involve making various pieces of complex software work in harmony with industrial devices like one big happy family. In order to make software talk to industrial devices, we use protocols that both the devices and the software can understand. Some protocols … Read more

A Class Factory in Golang (Google Go)

Do you know what a class factory is and why is it useful?  Ever considered implementing a class factory in Golang (Google Go) even though Go is not considered fully object oriented in nature? Are you curious about some awesome features in Go other than it’s impressive concurrency capabilities? If any of the these questions interests you, then reading on may be worth your while. This article covers implementing the factory design pattern in Go.

If that’s not your first time visiting my site, then you probably know by now that the Go programming language is a personal favorite … Read more

A dive into the industrial software industry

This article serves to provide a decent overview of the industrial software industry. This industry is the gate to the intelligent solutions that drive the success of industrial operations in factories, plants, pipelines, electrical grids, and similar facilities. Let’s start the journey by covering SCADA which is the main component of any industrial software.

What is scada?

A SCADA (Supervisory Control And Data Acquisition) system simply refers to the layers of software and infrastructure that sit between a digital screen, and any control or measuring device. SCADA is used to issue control commands to remote devices like valves or pumps, read values from those devices, and analyze device data when needed. SCADA … Read more

What is scaling an application?

Simple Definition:

Scaling an application simply means making a piece of software capable of handling amounts of data that is more than the software current ability. This is typically done by either redesigning the piece of software or making the hardware it runs on more powerful.

 

Examples:

A bookstore is using a software program that stores the customer information and the books they purchased. The store is growing in popularity to the point where within one year; the number of customers grew ten times. The software program cannot absorb and store the customer information fast enough due to the … Read more

What is SCADA?

Simple Definition:

SCADA is the layer that sits between a computer screen and any control or monitoring device.

 

Examples:

In a factory, SCADA is what allows the factory operators and engineers control the temperatures and pressures of the production lines.

In a power generation facility, SCADA is what allows the operators or the engineers control and monitor the power that gets generated… Read more

What is a Database?

Simple Definition:

A database is very simply a software program that stores any kind of information to be retrieved later.

 

Examples:

In schools, a database is the piece of software that stores the student names, grades, history..etc

In a retail shop, a database is where the customer names, what they paid.. etc is stored

 … Read more