Essential Knowledge for Automation PLCs: A Comprehensive Guide

It is well known that industrial production and technological development rely heavily on the automation control provided by PLCs. A PLC can be broadly understood as a centralized relay extension control cabinet. In practical production applications, PLCs significantly reduce the costs of industrial control and enhance centralized management and automatic control of equipment. To master … Read more

Webots Tutorial: Simple Obstacle Avoidance Robot

Introduction Now we will begin addressing topics related to programming robot controllers. We will design a simple controller to avoid the obstacles (boxes) created in the previous tutorial. This tutorial will introduce you to the basics of robot programming in Webots. By the end of this chapter, you should understand the link between scene tree … Read more

Learning the Bluetooth BLE Protocol: 001 – Overall Architecture of the BLE Protocol Stack

As shown in the figure above, to implement a BLE application, you first need a chip that supports BLE radio frequency, then you need to provide a BLE protocol stack that matches this chip, and finally, you can develop your own application on top of the protocol stack. It can be seen that the BLE … Read more

Core Knowledge Points in C++ Programming

Respect Function Interfaces and Minimize Internal Modifications C++ Code Statements are divided into: built-in types, names, variables, operators, scalars, strings, preprocessor directives (such as #include), etc.Classes in C++ are defined to organize data structuresThe header files of the standard library are enclosed in angle brackets < >, while non-standard library header files are enclosed in … Read more

Simple Python Calls to C++ Programs

Methods for Python to Call C/C++ Programs Recently, while debugging, I encountered a situation where Python was running very slowly, so I researched methods to embed C++ programs in Python. I am documenting this for future reference. Generally, calling C/C++ programs from Python can be divided into three steps: 1. Write the C/C++ implementation program. … Read more

Data Visualization Host Software: The STM32 Debugging Tool STM32CubeMonitor

STM32CubeMonitor not only provides variable monitoring capabilities but also offers a rich set of components to build various styles of graphical interfaces, along with numerous free third-party components for functional expansion. Additionally, STM32CubeMonitor supports remote monitoring functionality. STM32CubeMonitor is a variable monitoring and visualization tool that connects to the target MCU via the ST-LINK’s SWD … Read more

How to Operate a Multimeter for Low Voltage Electrician Certification Practical Exam?

1.The multimeter is divided into analog and digital multimeters. As shown in the figure below, the left image is an analog multimeter, and the right image is a digital multimeter. 2.The function of the multimeter is to measure AC voltage, DC voltage, DC current, resistance, and other multifunctional measurements. 3.Pre-use checks for the multimeter. (1) … Read more

Embedded Development: Mastering the Logic Analyzer

Microcontroller development engineers and electronics enthusiasts deal with various digital circuits daily. In addition to using multimeters and oscilloscopes for circuit debugging, a logic analyzer is also essential. A logic analyzer is an instrument that collects and displays digital signals from a test device using a clock, primarily for timing analysis. Unlike oscilloscopes, a logic … Read more

Mitsubishi and Siemens TCP/RS485 Communication Issues and Solutions

Follow “Jicheng Training” which has focused on automation education for 14 yearsMitsubishi PLC Common Questions Q: How to change the time zone on Mitsubishi R series PLC? A: Navigate to the window – [Parameters] – [R00CPU] – [CPU Parameters] – “Run Association Settings” – “Clock Association Settings” – “Time Zone” Q: How to read the … Read more

Linux x86 Buffer Overflow Level 3: Simple Buffer Overflow, Bypassing DEP and ASLR Protection via ROP

Preparation Work Enable ASLR and DEP protection. sudo -s echo 2 > /proc/sys/kernel/randomize_va_space To enable DEP protection, simply remove the<span>-z execstack</span> option when compiling with gcc. <span>gcc -m32 -fno-stack-protector -o level3 level3.c</span> Randomized Base Address The following shows the maps situation when running level3 multiple times. First Run $ cat /proc/22020/maps 56652000-56653000 r–p 00000000 08:03 … Read more