
Hosted by Hacker Public Radio · EN

This show has been flagged as Explicit by the host. New hosts There were no new hosts this month. Last Month's Shows Id Day Date Title Host 4673 Wed 2026-07-01 First contact conversation Archer72 4674 Thu 2026-07-02 Audiobooks Ahuka 4675 Fri 2026-07-03 Yard Inflatables operat0r 4676 Mon 2026-07-06 HPR Community News for June 2026 HPR Volunteers 4677 Tue 2026-07-07 UNIX Curio #10 - Checksums and Hashes Vance 4678 Wed 2026-07-08 High Resolution Elapsed Time in Shell Scripts Whiskeyjack 4679 Thu 2026-07-09 HPR Beer Garden 15 - Double IPA Kevie 4680 Fri 2026-07-10 Robert A. Heinlein: The Future History, Part 2 Ahuka 4681 Mon 2026-07-13 My Disabilities Antoine 4682 Tue 2026-07-14 Behind the Keyboard: A Cybersecurity Operator’s Real-World Workflow operat0r 4683 Wed 2026-07-15 Recording the hallway track Ken Fallon 4684 Thu 2026-07-16 Sim Racing on the cheap! operat0r 4685 Fri 2026-07-17 Listening to SSB stations in the early 1980s Lennart Benschop 4686 Mon 2026-07-20 Debugging Security Cameras: Firmware Updates, Python Scripts and Windows Workarounds operat0r 4687 Tue 2026-07-21 UNIX Curio #11 - Merging Files Vance 4688 Wed 2026-07-22 Downloading Podcasts with a Shell Script Whiskeyjack 4689 Thu 2026-07-23 Cheap Yellow Display Project Part 8: Writing the code Trey 4690 Fri 2026-07-24 Playing Civilization V, Part 14 Ahuka 4691 Mon 2026-07-27 Viva la Coda Lee 4692 Tue 2026-07-28 Noise Music Tutorial 2: Using Audacity to Make Noise TheDUDE 4693 Wed 2026-07-29 Amateur Radio Field Days Archer72 4694 Thu 2026-07-30 HPR Beer Garden 16 - Belgian Blonde Kevie 4695 Fri 2026-07-31 Try not to buy a phone operat0r Comments this month Past shows hpr4644 (2026-05-21) "Response to comments on HPR4424: Newsboat..." by Archer72. Archer72 said: "<a href="https:/...

This show has been flagged as Clean by the host. sunshine / xbox contlers / plex / steam / UWPHook / Bluetoothctl restart / HDMI dongle https://www.youtube.com/watch?v=FM4FbA4-W_c UGREEN USB C Hub 5 in 1 Multiport Adapter Revodok 105 4K HDMI, 100W Power Delivery, 3 USB-A Data Ports, USB C Dongle for MacBook Pro/Air, iPad Pro, iMac, iPhone 16 Pro/Pro Max, XPS, Thinkpad https://www.amazon.com/dp/B0BR3M8XHK Detached Command: @ECHO OFF cd "C:\backup\gamestream_launchpad" c:\windows\System32\HdrSwitcher.exe disable start /MIN gamestream_launchpad.exe 1920 1080 gamestream_playnite.ini .bindkeys rc cat .xbindkeysrc /bin/bash /home/plex/.local/bin/Plex.sh /bin/bash /home/plex/.local/bin/Steam.sh /home/plex/.local/bin/kasa --host 192.168.1.239 --port 9999 --type dimmer on; /home/plex/.local/bin/kasa --host 192.168.1.239 --port 9999 --type dimmer brightness 100;xgamma -gamma 1.3 /home/plex/.local/bin/kasa --host 192.168.1.239 --port 9999 --type dimmer on; /home/plex/.local/bin/kasa --host 192.168.1.239 --port 9999 --type dimmer brightness 40;xgamma -gamma 1.3 /home/plex/.local/bin/kasa --host 192.168.1.239 --port 9999 --type dimmer on; /home/plex/.local/bin/kasa --host 192.168.1.239 --port 9999 --type dimmer brightness 12;xgamma -gamma 1.3 /home/plex/.local/bin/kasa --host 192.168.1.239 --port 9999 --type dimmer off;xgamma -gamma 1.3" cat /home/plex/.local/bin/Steam.sh # requires wmctrl -l and xbindkeys # # xdotool windowactivate ```xdotool search --name 'window name'``` # 0 StartSteamLink(){ echo "restarting bluetooth" sudo systemctl restart bluetooth echo "Waking Game PC" sudo /usr/sbin/etherwake -i enp1s0 -D "d8:bb:c1:a2:2c:0b" echo "Starting steamlink" killall -9 steamlink killall moonlight sleep 20 # /snap/bin/moonlight /home/plex/.local/bin/Moonlight-6.1.0-x86_64.AppImage } StartSteamLink SUMMARY: Speaker discusses technical challenges with Sun Shine, Moonlight, and Play Night setups. IDEAS: Sun Shine and Moonlight enable remote game streaming. Play Night acts as a multimodal launcher for Steam. Resolution changes cause display issues during gameplay. Proper exit sequence is critical to revert settings. Ultra-wide resolutions are unusable in some configurations. Multiple launchers require separate logins for different games. Environment variables can adjust client dimensions. Background commands improve system stability. Cat named Mojo is mentioned during the discussion. 5G networks support slower-paced gaming. Technical glitches include frame drops and latency. Steam accounts are tied to specific game libraries. Detached commands run in the background without user interaction. GameStream Launchpad manages resolution and launcher paths. Magical system behavior simplifies remote gaming. Star Wars and Baldur’s Gate are cited as example games. 22nd Millie thing refers to network latency. Multiple Steam accounts complicate game access. Task killing reverts system settings automatically. Cross-platform streaming solutions are highlighted. RECOMMENDATIONS: Use environment variables for client resolution adjustments. Exit applications properly to revert settings. Set up detached background commands for stability. Monitor ultra-wide resolution compatibility. Utilize Play Night for Steam account management. Avoid multiple logins for different game libraries. Opt for cross-platform streaming solutions. Check network latency for smooth gameplay. Use bat files for automated task execution. Configure GameStream Launchpad for resolution changes. Prioritize proper task termination to prevent glitches. Test 5G networks for slower-paced gaming. Leverage environment variables for client settings. Ensure all applications exit before shutting down. Use detached commands for background processes. Verify resolution compatibility with ultra-wide displays. Combine Sun Shine and Moonlight for reliable streaming. Log in once for multiple Steam accounts. Address frame drops in low-latency networks. Stream games universally across platforms. Provide feedback on this episode.

This show has been flagged as Clean by the host. -------------------- 01 Introduction This is the fifth episode in an 8 part series. 02 In the previous two episodes we looked at the Allen Bradley PLC 2 and the Siemens S5 series of PLCs. In those episodes we mentioned I/O modules, but didn't really go into any detail on them. Instead we looked at the CPU units and focused on things from the programmer's perspective. 03 In this episode we will look at the I/O modules, what they are, how they work, and the purpose that they serve in the system. In addition to this, I will discuss machine safety systems and also claims made by certain people about cyber security and industrial safety. -------------------- 04 What is I/O? First though, we must address the question of what I/O is. While the CPU module may run the program, in order for the program to do anything useful it must interact with the real world outside the PLC. It must sense the state of the machine it is controlling through inputs, and it must affect the operation of the machine through outputs. 05 A Simple Example Let's take a very simple example to try to make the above a bit more tangible. Assume that we wish to press two parts together, such as pressing a bearing into a housing. This is a very common industrial process. 06 Let us assume we have the following items which connect to the inputs. * An emergency stop circuit. * A safety system to protect the operator. * A part presence sensor used to detect that the housing was correctly placed in the tooling. * Another part presence sensor used to detect that the bearing was correctly placed in the tooling. 07 * A sensor which indicates the hydraulic cylinder is fully retracted. * Another sensor which indicates the hydraulic cylinder is fully extended and the part was fully pressed home. * A button which the operator uses to initiate the press cycle. * Another button which the operator can use to abort the press cycle in the event of a fault. 08 We also have the following items which connect to the outputs * A hydraulic valve with two solenoids (down and up). * A pilot light which tells the operator that the cycle was completed successfully and the part is good. * A pilot light which tells the operator that the cycle was not completed successfully and the part is bad. This gives us a total of 8 inputs and 4 outputs. 09 A typical very small PLC would be suitable for this application. The PLC program would look at the state of the inputs, and apply the necessary logic to turn the outputs on or off at the appropriate time. As you can see, what makes a PLC useful is its ability to control I/O. 10 Small PLCs typically have a limited amount of I/O built into the same package as the CPU and can be used as is right out of the box. Medium to large PLCs will interface to racks of I/O, and the number of I/O points can be in the dozens to hundreds and even the thousands. -------------------- 11 Types of I/O The above example is very simple. There are in fact many types of I/O. I will outline the most common ones here. 12 Digital I/O The first is "digital" I/O. This is overwhelmingly the most common type. Digital I/O are basic on-off signals. A digital input will detect if a switch is on or off. A digital output will turn a relay or valve on or off. 13 Digital I/O comes in three main types categorized by the type of electronic device used. These are * AC * Relay * DC 14 AC AC I/O was the earliest type, but has largely faded away by now. This works with 100 to120 VAC or 230 VAC. Inputs detect the presence or absence of these voltages, and outputs output these voltages when turned on. The relay logic that PLCs replaced was largely driven by these voltages, so being able to interface with existing systems was an important design consideration for early PLCs. 15 Relay Relay outputs were an alternative to triac devices used for solid state AC outputs. These were very small relays built into the output modules. Their main attraction was they were usually somewhat cheaper than solid state outputs. However, they suffered from being much less durable and had a shorter life. 16 DC By the 1980s and 1990s, AC and relay I/O had been largely replaced in new applications by 24VDC. This allowed for more compact and less expensive control wiring, and fewer electrical safety concerns. Both inputs and outputs worked with 24VDC. All of the standard sensors, solenoid valves, relays, push buttons, lights, and pretty much all other devices were designed to be compatible with 24VDC. In cases where you had large motor contactors or relays, or large solenoid valves which required higher voltages for practical reasons, an additional interposing relay could be used to amplify the control signal. 17 I/O modules or cards came in 8, 16, 32 point sizes, and there were modules which combined both inputs and outputs in a single module. -------------------- 18 Analogue I/O As well as simple on-off voltages, PLCs could also work with variable voltages, where the actual voltage or current represents a measurable value, such as temperature or dimension. These are known as analogue values. These can be inputs or outputs and are known as analogue inputs or analogue outputs. 19 The simplest is voltage. The most common standard voltage ranges are * 0 to 10V. * Plus or minus 10V. * 0 to 5V. * 1 to 5V. 20 Another type is current. This is where the amount of current rather than the level of the voltage is what is significant. Current has an advantage over voltage in that it is less affected by resistance losses in long wiring runs and is also less prone to being influenced by electrical noise due to the lower impedance. 21 The most common standard current ranges are 4 to 20 mA. 0 to 20 mA. 22 Another common type is thermocouple inputs. These have special circuitry built into them to interface with thermocouple devices, which are a common device used to measure temperature by measuring the voltage generated when two dissimilar metals are heated in contact with each other. -------------------- 23 Serial Communications A number of PLCs have serial communications ports, mainly used to interface with things like label printers or bar code readers. Some of these have even had basic interpreters built into them, mainly to allow for better string formatting or parsing. 24 Servo and Stepper Another category of I/O are servo and stepper motor controllers. 25 High Speed Counter Timer Another type are counter/timer modules, which allow for high speed counting of events, or very precise timing of events in hardware, or interfacing with rotary or linear encoders. Encoders are measuring devices which have a series of very small but precise marks which interrupt beams of light when they move, allowing measurements to be made. 26 Networking Many PLCs also support some sort of networking. I won't go into any detail on that here, but will instead address this area in another episode. However, network ports may be built into the CPU, or may reside in separate network I/O modules. 27 Specialty As well as the preceding there are many other specialty modules which I won't bother to describe here. -------------------- 28 Operator Panels The original operator panels were arrays of push buttons, pilot lights, and other basic operator controls mounted in boxes for an operator to interact with the machine. Later on these were replaced by specialty electronic devices which were also known as operator panels as they served the same function. 29 Modern operator panels are screens and keypads which are used to display information to an operator or to allow data to be entered into the PLC. While not strictly speaking a type of I/O, operator panels typically look like I/O to the PLC CPU. Buttons on a touch screen may be effectively the same thing as actual hardware buttons from the PLC's perspective, and analogue values output to the operator panel for display are like hardware analogue devices. 30 All of these data are mapped to memory locations in the PLC, with the details of how this is done varying according to the make and model of PLC. 31 I won't go into any detail on this as this could be a separate subject on its own. Generally though, you would use software to create screens to display on the operator panel. The indicato...

This show has been flagged as Explicit by the host. Freedom 0–3 (verbatim reference) The four freedoms, GNU/FSF: https://www.gnu.org/philosophy/free-sw.html Richard Stallman: https://www.stallman.org/ Named FOSS figures (freedom 3 list) Linus Torvalds (Linux): https://en.wikipedia.org/wiki/Linus_Torvalds Dries Buytaert (Drupal): https://dri.es Guido van Rossum (Python): https://gvanrossum.github.io Ian Murdock (Debian): https://en.wikipedia.org/wiki/Ian_Murdock Brian Behlendorf (Apache): https://en.wikipedia.org/wiki/Brian_Behlendorf Miguel de Icaza (GNOME/Mono): https://en.wikipedia.org/wiki/Miguel_de_Icaza Infrastructure block (post beer 1) curl / Daniel Stenberg: https://curl.se and https://daniel.haxx.se xkcd 2347 (dependency comic): https://xkcd.com/2347/ xz backdoor, CVE-2024-3094: https://en.wikipedia.org/wiki/XZ_Utils_backdoor Andres Freund's original disclosure: https://www.openwall.com/lists/oss-security/2024/03/29/4 Licensing block (beer 2–3) GPL: https://www.gnu.org/licenses/gpl-3.0.html MIT License: https://opensource.org/license/mit FreeBSD: https://www.freebsd.org macOS/Darwin BSD lineage: https://en.wikipedia.org/wiki/Darwin_(operating_system) PlayStation using FreeBSD (Orbis OS): https://en.wikipedia.org/wiki/Orbis_OS Industry acquisitions (beer 4) Microsoft acquires GitHub, 2018, $7.5B: https://news.microsoft.com/2018/06/04/microsoft-to-acquire-github-for-7-5-billion/ FOSDEM field report (beer 4–5) FOSDEM: https://fosdem.org Ladybird browser / Andreas Kling: https://ladybird.org Godot Engine: https://godotengine.org Home Assistant: https://www.home-assistant.io Redis → Valkey fork: https://valkey.io Terraform → OpenTofu fork: https://opentofu.org Homework block (beer 5) Ollama: https://ollama.com Codeberg: https://codeberg.org LibreOffice: https://www.libreoffice.org Firefox: https://www.mozilla.org/firefox Provide feedback on this episode.

This show has been flagged as Clean by the host. -------------------- 01 Introduction This is the second episode in an 8 part series. 02 In the previous episode we discussed the predecessors of PLCs, in particular relay logic. In this episode we will discuss how relay logic came to be expressed in software rather than in actual hardware components. 03 The topics to be covered include * Early computers in industry. * The first PLC. * PC versus PLC - what's in a name. * Who the major brands are. * What does a PLC actually look like. * Machine architecture. * PLC programs. * The scan. * PLC programming languages. * Relative popularity of PLC programming languages versus more conventional computer programming languages. -------------------- 04 Early Computers in Industry Computers came to be used in industry fairly early on. Minicomputers were used in some large industries to control things like electric power plants. For example, the DEC PDP8 was used to control the refuelling machines in CANDU nuclear power plants. These would load and unload fuel from the reactor, which happens continually on a daily basis while the reactor is running. 05 The first microprocessor based computer sold on the commercial market was the MICRAL from France, based on the Intel 8008. It was sold as a cost effective replacement for minicomputers used in industry. It preceded what are generally considered to be the first Personal Computers. So you can see that industry were not reluctant to adopt new technology. 06 However, mini computers were large complex systems that did not fit well into a factory floor. They had particular niches in very large complex integrated systems, but were not suited to controlling many individual machines in a factory that produced things like automobiles or appliances. 07 What was needed was something that would fit into a standard electrical enclosure, withstand the temperatures found in a factory, could stand up to vibration and noise, was tolerant of voltage fluctuations, interfaced directly to sensors and actuators, and could be readily programmed by engineers, technicians, and tradesmen who were familiar with the processes to be controlled, but had little or no experience with computers. 08 This required a complete integrated package covering hardware, software, and product distribution through industrial supply retailers. Something that could meet these criteria is what was needed to become the PLC. -------------------- 09 History Many histories point to a US developer that became Modicon. However, their first hardware was more a proof of concept than a viable commercial product. In fact multiple companies in the US, Europe, and Japan were working on the problem and released comparable products all at around the same time in the early 1970s. 10 The idea preceded the implementation by a number of years. For example, General Motors had asked industrial control equipment suppliers in the mid 1960s for some sort of programmable control device to replace relay logic. This showed potential suppliers that there was a market for this sort of thing, and gave them a clearer idea of what customers were looking for. 11 What made this possible was the development of the first 8 bit microprocessor in that time period, combined with readily available bit slice processors from the minicomputer industry and other components. 12 People knew what to do, the problem was waiting for the development of suitable component hardware. Minicomputers were already being used in industry, but were normally located in control rooms. PLCs were an effort to take that technology out of control rooms and put it on the shop floor. 13 PC Versus PLC - What's in a Name In the early days, these systems were known as either PLC, which means "Programmable Logic Controller", or PC, which means "Programmable Controller". Different vendors favoured different terminology, but both were common. I have a book which was at one time one of the standard reference handbooks for this industry which was published in 1989, and refers to them as Programmable Controllers, or PCs. 14 The term PC was also used to mean "Personal Computer", but that wasn't really a problem in the early days. However, a certain large company decided to call their entry into the personal computer market the "IBM PC", and suddenly "PC" became a generic term for desktop computers. 15 After a long struggle to keep referring to their products as "PCs", even the biggest vendors caved in and gave up the fight and switched to using the "PLC" term. I will therefore use the term "PLC" in this podcast series even when talking about products which were originally called "PCs" at the time they were introduced. 16 Who the Major Brands Are The companies that came to dominate the industry fairly early on were generally companies that already made industrial electrical hardware. These were Siemens Allen Bradley, later known as Rockwell Schneider Mitsubishi Omron 17 These are still the dominant companies in the business, although there are many small brands, particularly at the cheaper end of the market. All of them were suppliers of a wide range of industrial control hardware, such that you could build all or nearly all of the parts of your control system using only their products. 18 Each of these sells an integrated hardware and software package, including development software, that is completely proprietary. If you thought that the mainframe business had a lot of vendor lock-in, you haven't seen the industrial market. -------------------- 19 What Does One of These Things Actually Look Like? At this point you are probably still very confused as to what a PLC actually is. I will attempt to describe one in basic terms by giving an example of one. The smallest and simplest ones are what are termed "shoebox" PLCs. These are basically a rectangular box with a plastic case. 20 Here are the dimensions for a typical low end model, a Mitsubishi FX3U-32M. According to specs in the manual, it is 150mm wide, 90mm high, and 86mm deep. 21 It can be mounted to the panel in an electrical enclosure by snapping it onto what is termed a DIN rail. DIN rails are standard mounting systems which use a strip of metal which is U shaped with a lip at the top of each end of the U. You screw the DIN rail to the electrical panel in the enclosure, and most industrial components such as PLCs, terminal blocks, circuit breakers, and all sorts of other things will simply snap onto it and be ready to wire together. 22 Along the top and bottom of the PLC are terminals to which you can attach wires from the things you want to sense or control in the rest of the machine, such as push buttons, pilot lights, proximity sensors, and valves. 23 Inputs are along the top, and outputs are along the bottom. The FX3U-32M has 16 inputs and 16 outputs. These I/O can be 24 volts DC, or 100 to 120 volts AC, depending on the model. Alternatively it may have small relays for outputs. While AC I/O once predominated, 24VDC became the standard in most industries several decades ago as it interfaced with electronic devices more readily and also allowed for cheaper and more compact wiring. 24 More inputs and outputs can be added by connecting additional I/O modules to the main PLC next to it on the same DIN rail, up to a total of 256 I/O The connection is typically via short ribbon cables which plug into the adjacent module. These I/O modules look like the main PLC, but just add I/O. 25 Inside the PLC are a CPU, memory, and firmware. This model has 64K "steps" of memory, which can be thought of as how many instructions you can have. The program runs in RAM, but you can add a small flash memory device to save the program to. There is a run/stop switch that allows you to start or stop the user program. There is a port that you can use to connect the PLC to a laptop computer with a cable so you can download your program to it. 26 The biggest part of the market for PLCs is for these "shoebox" style. However, there are bigger ones as well which have more I/O, more memory, faster CPUs, etc. These are meant for tasks such as coordinating large assembly lines and things like that. These are what are termed rack systems, where the rack is an empty box which is open at the front and has a backplane bus running along the back. You plug the main CPU into the bus, normally in the lef...

This show has been flagged as Clean by the host. Introduction 01 This is the first episode in an 8 part series. 02 This series is on programmable logic controllers, or PLCs as they are commonly known. What is a PLC you ask? In short, it is a general purpose programmable industrial control device. They are used all through industry in factories, utilities, and anywhere industrial machines need to be controlled. 03 They are a fully integrated system of hardware, software, and development environment tailored specifically for automatic industrial equipment. It is probably easiest to describe them by first giving a bit of historical background as to what preceded them. 04 The Early Days of Automation You have probably heard of the Jacquard loom of the early 19th century and its use of punch cards with respect to it being one of the technologies which eventually lead to computing. However, for our purposes here, its significance is that it was an early form of industrial automation control system, since it was after all controlling a machine in a factory. 05 For other types of machines, a common purely mechanical means of having the various parts of a complex machine move in a coordinated manner was through the use of shafts and cams. A series of cams located on a shaft or set of shafts connected by gears, could move parts of a machine, turn valves on or off, and generally coordinate the parts of a machine. With the spread of the use of electricity in factories in the early 20th century, it was now possible to use the new electrical technology to perform control and automation functions. 06 The Background of Relay Logic I will need to explain some electromechanical terminology here as it is necessary to understand these terms and the concepts behind them in order to understand PLCs, as the latter is an evolution of its predecessors and uses the same terms. What preceded PLCs was what was commonly known as "relay logic". 07 What is a Relay A relay is an electromechanical device that responds to and controls the flow of electric current. A relay has a "coil" which as the name implies is a coil of conductive wire. When you energize the coil, that is you apply electric current to it, it forms an electromagnet. 08 This electromagnet draws in an armature. The armature is a moving piece of metal which is attracted to the coil when the latter is energized. The relay being activated is referred to as closing. Deactivating is referred to as opening. Alternative names for these states are "pulls in" and "drops out" respectively. 09 The armature in turn is attached to one or more contacts. You can think of a contact as being like a switch. When the switch is turned one way, the electrical path is closed and current can flow. When it is turned the other way, the electrical path is broken and current flow is interrupted. 10 Contacts can be normally open, in which case the path is closed and current can flow when the relay turns on. Alternatively, they can be normally closed, in which case the path is closed and current can flow when the relay turns off. A relay can, and typically does, have multiple contacts, including both normally open and normally closed. Remember these terms, coil, contact, normally open, and normally closed. 11 What is a Latching Relay There is a special type of relay known as a latching relay. This was only occasionally used in relay control circuits, but the concepts behind it will become more important when we talk about actual PLCs. A latching relay has two coils. One coil is used to turn on or "set" the relay. The other coil is used to turn off or "reset" the relay. 12 The relay has either a mechanical latching mechanism or a magnet which is used to hold the relay in the set (or in other words, closed) position even if the set coil is de-energized. You must energize the reset coil in order to reset or "open" the relay. A latching relay provides the equivalent of one "bit" of memory which retains its last state even if the power to the machine is turned off. 13 Latching relays were used in applications where it was important that the relay logic circuit remember its last state. While not frequently used in relay control circuits due to their greater cost and complexity, the concept was to be more extensively used in PLC programs when set and reset instructions were provided which performed the equivalent function in software where there were no similar cost considerations to worry about. 14 Thus set and reset were to be much more frequently used in PLC programs than they were when they were actual relays. Add these terms to your list of things to remember - latch, unlatch, set and reset. 15 What is a Contactor I will mention another term now in case it happens to come up later. This is "contactor". A contactor is basically just a large relay. It is typically used to control large electrical loads such as motors and heaters. 16 Smaller relays are typically just called "relays", or sometimes "control relays". These be used to create either logic circuits or control smaller electrical loads such as lights or pneumatic or hydraulic valves. This may seem like a lot of jargon, but bear with me, I will make analogies to computers when appropriate. 17 Input and Output Devices If you want to do some useful work, you will need some I/O. Typical input devices include the following. 18 Push buttons. These are buttons which are pressed by the operator to command the machine to do something. 19 Selector switches. These are switches which are typically rotated to turn on or off and maintain their position. These can have multiple positions, each of which can activate a separate input. 20 Pilot lights. These are lights which are used to provide feedback to the operator. 21 Limit switches. These are mechanical switches which parts of the machine activate, rather than the operator activating them. This can be used to determine what position the various parts of the machine are in at any given time. 22 Proximity sensors. These are essentially solid state limit switches which are more reliable than mechanical switches as they are less subject to wear and tear. These are often colloquially abbreviated as "proxies". 23 Solenoid valves. These are like relays in that an electromagnetic coil is activated. However, instead of activating another electrical contact, it activates a pneumatic or hydraulic valve. This valve in turn typically allows air or hydraulic fluid to move a piston within a cylinder, which then moves some mechanical part of the machine. A typical machine will have lots and lots of proximity sensors and solenoid valves. 24 Relay Logic All of these inputs and outputs require some sort of logic to coordinate them. This is where control relays came in. 25 If having the output of one electrical device being able to control another electrical device sounds a bit like a transistor, then yes relays are analogous to electronic transistors. However, while transistors are a mid 20th century invention, relays date from the mid 19th century. 26 Like with transistors, it is possible to encode logic into a network of wires connecting relays together, along with inputs from switches and other input devices. By wiring sensors and relays together in the right order, it is possible to create reasonably complex sequences of operation to control a machine in an automatic manner. 27 Relay Boolean Logic Wiring relay contacts in series creates "and" conditions. Wiring them in parallel creates "or" conditions. Using normally closed relay contacts creates "not" conditions. By feeding a relay's own contacts back into the circuit leading up to its coil, it is possible to have a relay remember its own state. Each relay therefore could be thought of as one bit of logic in a boolean logic circuit. 28 Timers and Counters Special timing relays could be used to create a time delay between the relay energizing or de-energizing, and the contacts closing or opening. A timing relay which imposed a delay after being energized is an "on delay timer". A timing relay which imposed a delay after being de-energized is an "off delay timer". 29 Timing relays were often pneumatic. They had a small rubber bellows that leaked air slowly through a adjustable orifice. The bellows would prevent the relay from opening or closing, depending on the type, until enough air had leaked out for it to close ...

This show has been flagged as Clean by the host. As we are currently going through a warm patch (well, at the time of recording anyway), the HPR Beer Garden returns to provide some refreshment in the heat with a glass of cold and refreshing lager. Dave chooses Super Bock from Portugal, whilst Kevie picks City Limits Amber Lager from the tiny Dog Falls Brewing Co in Inverness. Connect with the guys on Untappd : Dave Kevie The intro sounds for the show are used from: https://freesound.org/people/mixtus/sounds/329806/ https://freesound.org/people/j1987/sounds/123003/ https://freesound.org/people/greatsoundstube/sounds/628437/ Upcoming beers: Mild Bitter Pale Ale Provide feedback on this episode.

This show has been flagged as Clean by the host. -------------------- 01 Introduction This is the fourth episode in an 8 part series. 02 In the previous episode we looked at the Allen Bradley PLC2, one of the very early successful Programmable Logic Controllers. In this episode we will look at another early PLC, the Siemens S5 series, and use it as an example of both how PLCs became more sophisticated, as well as an example of a different approach to the overall software architecture. Again, I will only touch on this topic lightly, this is not a course on how to program PLCs. However, I will give you enough technical detail to give you are rough idea of what they were like. -------------------- 03 S5 Historical Background Siemens are the largest PLC vendor on a global basis, and have been since the early days. Their first PLC was the S3, released in 1975, two years before Allen Bradley released the PLC2. There seems to be almost no information available on the S3, so I can't say much about it. In 1978 or 1979, sources are unclear about the exact date, Siemens released the S5 series. This was a huge step forward in capability and was the foundation of their PLC product line until replaced by the S7 series in the mid 1990s. In this episode I will focus on the U series, which were an upgrade to the original S5. -------------------- 04 A Complete Family of PLCs Fully developed, the Siemens S5 series was a complete family of products covering the entire size spectrum from smallest to largest. Siemens covered the entire industrial control market, and there was almost nothing they didn't have somewhere in their catalogue. You could spend an entire career using nothing but Siemens products for everything. 05 At the lowest end were the S5-100 series, consisting of the S5-100, 102, 103, 90, and 95. These covered everything from the small "shoebox" all in one form factor to ones which overlapped the mid range in terms of capability except for their compact I/O cards which were smaller and slower than the full size models. The S5-115 formed the mid range, coming in a "full size" form factor in terms of packaging and rack size. The S5-135 and S5-155 extended the S5-115 in terms of speed and memory. 06 In this episode I will focus on the lower end S5-100 series for the sake of simplicity, and will not make any reference to any additional capabilities of the larger models. It will be much too time consuming and confusing to try to cover everything, and there wouldn't be much point to it. -------------------- 07 Data Memory Types If you recall the previous episode, the Allen Bradley PLC2 had a data table, or memory system, that was a single linear range of memory with all I/O and internal capabilities mapped into fixed numerical addresses. Allen Bradley were to abandon this approach in their later PLC5 series introduced in the mid to late 1980s, but we won't cover that here. The Siemens S5 series however took the approach of having different types of memory addresses for different purposes. I will describe those for the S5-100 series now. 08 Input and Output Addresses The standard I/O modules for these compact PLCs had 8 inputs or 8 outputs per I/O module. These module plugged into a flat bus (as opposed to an enclosed rack) with slots numbered from 0 through 31 in decimal. Each of these slots had an associated byte number, and each I/O point on the individual modules had a bit number. 09 Input and output addresses had the following format. Letter , number, decimal point, number. The letter was either I or Q. I indicated inputs. Q indicated outputs. The first number was the byte number, which corresponded to the physical I/O module slot. The second number was the bit number within the byte, starting from zero. 10 So "I2.3" indicated an input module located in the third slot (numbered from zero) and addressed the fourth input (numbered from zero) on that module. Outputs worked the same way. For example "Q 5.1" 11 Analogue modules could be located slots 0 through 7. Analogue if you recall, refers to voltages which have varying levels rather than just on or off, and can represent things like temperature. Each analogue module was assigned 8 bytes per slot, starting at address 64 and going up to 127. In practice many of these so called "analogue" modules had nothing to do with actual analogue voltages, but rather any advanced module which needed more address space was used here. Even later high density digital I/O used these addresses. 12 Each of these addresses could be addressed as bytes or words. In this case input bytes were indicated by an "IB" prefix, and input words were indicated by a "IW" prefix. Output bytes used a "QB" prefix and output words used a "QW" prefix. 13 Flags Flags are individual bits of internal memory that are used for storing intermediate logic values. These began with an "F" prefix. An S5-103 had a total of 2048, numbered from F0.0 to F255.7. 14 Counters Counters started with a "C" prefix. An S5-103 had 128 of these numbered from C0 to C127. 15 Timers Timers started with a "T" prefix. An S5-103 had 128 of these numbered from T0 to T127. 16 Data Blocks Programs needing to deal with byte and word memory could create what were known as "Data Blocks". These were blocks of PLC memory that could be created as the discretion of the programmer. An S5-103 could have a maximum of 254 data blocks numbered from DB2 to DB255. Two additional data blocks were reserved for the PLC's internal operations. Data blocks could contain up to 255 16 bit words. 17 However, the actual number and size of data blocks would in practice be limited by available memory. Even 20 kilo bytes was considered to be a large memory, and this had to be shared with the program. A data block would be "called" to make it the current data block. Then individual words would be addressed with the "DW" prefix. For example "DW5". -------------------- 18 Program Blocks If you recall with the PLC2, there was a "main" program and a series of optional numbered subroutines. In the S5, programs were split into "blocks". These were Organization Blocks Program Blocks Function Blocks Sequence Blocks An S5-103 could have up to 256 of each of these blocks. 19 Organization Blocks When the PLC started up, it would look for Organization Block 1 and begin execution there. You could consider this to be the equivalent of the "main" function in a C program. Organization blocks had an OB prefix. For example OB1. With a very simple program in a very small S5 PLC, all of the program logic could be simply put in OB1. However, with larger programs , it was convention to put the logic in subroutines and simply have OB1 call each subroutine. 20 Program Blocks These had a PB prefix. For example PB10. Normal ladder logic style programming would go in these. It was convention to split up a program into pieces and put piece in its own program block. Normal practice was to have a program block correspond to a particular part of the machine. 21 Function Blocks These had an FB prefix. For example FB64. Function blocks differed from program blocks in that they could take parameters. This allowed you to write an FB that performed some sort of complex data transforms and re-use it by calling it with different parameters. Some instructions could only be used in FBs, not in other types of blocks. There were also built in FBs in some CPU models which performed certain operations such as converting BCD (or Binary Coded Decimal) to normal integer. 22 Sequence Blocks These has an SB prefix. For example, SB25. These were like PBs, but were intended for controlling sequences of operations where each SB performed as single step of the sequence and multiple blocks were used for a sequence. -------------------- 23 Programming Languages The S5 series offered four different programming languages. These were Ladder (abbreviated as LAD) Statement List (abbreviated as STL) Control System Flowchart (abbreviated as SCF) GRAPH 5 24 You should be familiar with ladder if you listened to previous episodes. Briefly however, it is a graphical programming language which followed the appearance of electrical ladder wiring diagrams which were familiar to engineers, technicians and electricians working with manufactur...

This show has been flagged as Clean by the host. [WP2Shell is] a pre-authentication RCE in WordPress Core . The attack has no preconditions and can be exploited by an anonymous user in a stock install of WordPress with no plugins. - from wp2shell.com Wordpress.org - https://en-gb.wordpress.org/ Searchlight WP2Shell Website - https://wp2shell.com/ CVE-2026-63030 - https://nvd.nist.gov/vuln/detail/CVE-2026-63030 CVE-2026-60137 - https://nvd.nist.gov/vuln/detail/CVE-2026-60137 OpenSSH - https://www.openssh.org/ FileZilla - https://filezilla-project.org/ GNU Tar - https://savannah.gnu.org/git/?group=tar GZip - https://www.gzip.org/ Provide feedback on this episode.

This show has been flagged as Clean by the host. -------------------- 01 Introduction This is the third episode in an 8 part series. 02 In the previous episode we covered * The early history of computers in industrial control * The early history of PLCs, including how they got their name * Who the major brands are * What they look like physically * A basic description of the abstract machine architecture * A very brief look at what a PLC program is like * The scan concept * The main PLC programming languages * The minor PLC programming languages * The relative popularity of each of the programming languages 03 In this episode we will begin by taking a look at one of the early PLCs from the era when they first began seeing widespread use. I will not even attempt to try to be comprehensive, I will just give a broad overview in the limited time I have available here. I have started with an older model because its simplicity and limited features allow for an easier introduction to the topic. -------------------- 04 Allen Bradley PLC/2 The Allen Bradley PLC/2 was introduced to the market in 1977. It was not their first foray into this field, but it was their first really successful one. I am not aware of a comprehensive history of their early product line, but one of their early major selling models was the PLC2/30. This is also known as their 1771 series. -------------------- 05 Physical Layout The CPU module was a large metal box which sat beside the I/O rack and connected to it with a cable. The I/O rack was a box with an open front and an series of slots into which tall narrow boxes containing the I/O could be slotted. 06 A backplane ran across the back, connecting the I/O to the CPU. Multiple racks could be connected together by cables. For the PLC2/30, you could have a maximum of 896 digital I/O points. 07 Racks were 315mm high, and between 247mm to 610mm wide, with racks coming in 4, 8, 12, and 16 slot varieties. The CPU was the same height as the rack and roughly square in outline. 08 As micro electronics advanced, the CPU module was able to be shrunk down in size such that it would fit into a slot in the rack, which became the norm for PLCs. -------------------- 09 The Electronics Inside Early model PLC/2s used some sort of 8 bit processor, some sources say an Intel 8080. 10 They also used four AMD 2900 bit slice processors as a logic co-processor. If you are not familiar with bit slice processors, these are chips which are like a 4 bit vertical slice through a processor, and can be joined together with logic chips to form a complete CPU. These are what were used to construct minicomputers. 11 They were used as coprocessors in early PLCs because microprocessors on their own were simply too slow to handle running the user program rapidly enough to allow a useful size program. One or more microprocessors were used as well in order to coordinate the overall operation and system management. 12 As microprocessors grew faster and more powerful, the need for logic coprocessors declined and they were eventually dropped. Early versions used magnetic core memory. Later ones switched to some sort of solid state RAM, probably static RAM of some sort. 13 Details of what sort of processors are inside any PLC are actually very hard to come by as manufacturers don't generally talk about that sort of thing. They wish the user to see it as just a black box. -------------------- 14 The Data Table From a programmer's perspective, the most important thing to understand first is the data table. The data table is the PLC's data memory. 15 For a PLC2, this is an array of 16 bit words. Each word consists of two 8 bit bytes. Addressing for both bits and words is in octal. 16 For those not familiar with them, octal numbers follow a counting system that goes from 0 to 7. The next number after 7 is 10. Counting then proceeds from 11, 12, 13, etc. going to 17, 20, 21, etc. Each octal digit takes exactly 3 bits. 17 Individual bits in PLC2 notation may be addressed by specifying the word followed by a slash, and then the bit. For example, 030/12 is the 12 bit in word 030. Remember that this is octal, so 12 is not the 12th bit if you are counting in decimal. 18 Memory Organization On the PLC2/30, the data table has the following organization. 19 Word addresses 000 to 007 are Processor Work Area number 1. This is not accessible by the user. 20 Word addresses 010 up to, but not including, 100 are the Output Image Table. This is a memory mapped image of the I/O outputs. 010 to 077 is for Rack 1. 020 to 027 is for Rack 2. This pattern continues up to Rack 7, which is 070 to 077. 21 Word addresses 100 to 107 are Processor Work Area number 2. This is also not accessible by the user. 22 Word addresses 110 up to, but not including, 200 are the Input Image Table. This is a memory mapped image of the I/O inputs. This is laid out in the same way as the output image table, and goes from 110 to 177. 110 to 117 is for Rack 1. 120 to 127 is for Rack 2. This pattern continues up to Rack 7, which is 170 to 177. 23 You will notice that the output image table and input image table appear to address the same rack slots. They do in fact do this. As to which address a specific slot in a specific rack maps to depends on whether there is an input card or an output card in that slot. 24 Addresses 200 to 277 are for Timer/Counter accumulated values. An accumulated value is the current time or count. 25 Addresses 300 to 377 are for Timer/Counter preset values. A preset value is the target time or count which when reached causes the timer or counter to indicate that it has reached the desired value. 26 The memory above 400 can be configured to split it into a data storage area and user program area. The data storage area is where you would store data that your program needs to use which is not part of the I/O or times and counters. You need to strike the correct balance between user data and program size. 27 There are various things that can be changed and configured with respect to the above, but I am not going to cover that in any depth as this is not a tutorial on the PLC2. = You should however have a pretty good idea of the memory of an early model PLC. The things to understand are that I/O are mapped to memory addresses, and different memory ranges are used for different purposes. 28 All memory management was manual. It was up to the user to keep track of which memory addresses were to be used for what purposes. Allen Bradley helpfully provided paper forms which you could photocopy which you could use to plan out and document what each address would be used for. Part of the programmer's job was to make efficient and logical use of memory, while also leaving space for future changes. -------------------- 29 The User Program The user program is made up of instructions. Each instruction typically takes one word of memory. However, complex instructions can take up to 8 words of memory. 30 There is a main program. You can think of this as like the "main" function in C. If you don't find that analogy helpful, then just think of it as this is where your program starts. The main program continues with one rung after another until it reaches the END statement. 31 There is also a subroutine area. The main program calls a subroutine by using a Jump to Subroutine, or JSR instruction. 32 The T3 Programming Terminal When the PLC2 came out, things like laptops were still far in the future. Even the first Compaq Portable suitcase style PC was still some years away. Indeed, the first PLC/2 came out not long after the first Altair PC kit. 33 Programming initially therefore was done using a special programming terminal known as a T3. The T3 was a suitcase size box with a small CRT in the end of it, and a keyboard attached to it below the screen. If this sounds like the early portable PCs, keep in mind that this in fact predated them by a number of years. 34 The keyboard was not a typewriter or QWERTY style. It had a membrane keypad with graphical symbols. Recall the previous episode on control diagrams using relays and how these were documented using schematic symbols on drawings. The T3 terminal keypad had symbols corres...