Blog posts
-
Animating HMI values and system performance
In this post we dive in to visualizing some data on the HMI that comes over a communication interface. At the same time we will take a look at “system performance” and the perception of “system performance”.
-
PLC Programming: Debug Codesys with custom exceptions
Does your PLC sometimes crash and you cannot find the cause? Here is one way to help the debug process.
-
Speedtest: Converting BOOL[1..32] to BYTE[1..4]
I had a task to convert a BOOL[1..32] to 4 Bytes for some communication implementation. Profiling the previous implementation revealed most of the load was coming from this packing function so I decided to figure out the fastest way of packing.
-
Comparing NMEA0183 Library cross platform
I’ve been playing around building a NMEA0183 simulator and by doing so I’ve implemented the same nmea parse library in IEC (Structured text), Python 3.10 on my local machine, Micropython on a Raspberry Pi Pico and ANSI C, both on a PLC and on my local machine.
-
Speedtest: Calculations inside loop declarations
Something interesting I found while parsing some strings. Behavior of calculations inside of FOR loops.
-
Speedtest: ST vs LADDER vs FBD vs CFC
This time on measuring interesting code blocks, Ladder Vs FBD Vs ST Vs CFC. Which one is faster?
-
Speedtest: IF-ELSIF vs CASE
Multiple authors and developers recommend using CASE over long IF-ELSIF sentences. Lets see why.
-
Speedtest: Integer vs Floating point math
Wise man said “Don’t use REAL for math if not necessary!”. Let’s see if that still holds in 2022.
-
Speedtest: String operations
By popular demand, the dreaded string operations. Here are some measurements.
-
Speedtest: Fastest way of combining two bytes into a integer
In some protocols like CAN Bus, data is split into bytes. When transporting 16 or more bit integers, they have to be assembled on the receiving end. Let’s dive in and take a look, which method is fastest.
-
Designing my own Can Bus breakout board
I had an idea to try and make a Power and signal bus for my home CAN network. It was a quite a bumpy ride to make these but the idea I was testing works. Bumpy as in “I have no idea what I am doing”. This is how it went.
-
Speedtest: Memory manipulation with SysMem Lib
This time something more advanced, memory manipulation.
-
Building a PLC power supply from and ATX Power supply
Related posts in this category
subscribe via RSS