Tuesday, April 24, 2018

Trinity of Web: HTML + CSS + JavaScript



At the heart of modern web applications there lays 3 main components which helps/guides users to do shopping on Amazon web site, purchase air tickets from Delta Airlines, connect friends worldwide through Facebook, transfer money from your account to a friend via Bank of America and many other services to better/improve the standard of living of humans.
Let’s briefly go through each component, understand what it means and what it does:

HTML

Hyper Text Markup Language, here markup means marking a word bold or italic or underline or make paragraph by markups like
, PS, HTML is the product of printing technology. So that’s where the word markup came from. In general HTML helps to structures the data or holder of the data.  So if user wants to see their data structured then they should format their data according to html tags/elements.

CSS

Cascading Style Sheets, it’s the styling language used to do designing/presentation/formatting of structured data aka HTML tags/elements. In simple words, via CSS we can say what is the color of font/ size, how and where to position the images, what type of fonts, size of the grid/table etc. User must follow the rules of CSS styling language.

JavaScript

Plays behavioral role or it interacts with the user, for ex: Alerting users through message boxes, or when user clicks on submit button, JavaScript validates user has entered all the required/mandatory field before submitting data to sever, etc. Through JS user can request data from server for ex: their checking account balances or transaction data.

Each of the above components are worth of a book or more. But in general it is simple, Structure + Present + Behavior combined all these three makes the web working and helps human to improve their standard of living or simplify.

A very simple/real working example of all of the above components is as follows:
<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Simple web app</title>
    <style>
        button
        {
            color: white;
            background-color: lightblue;             
        }

    </style>
    <script type="text/javascript">

        function Hello() {
            alert("Thanks for clicking me!");
        }

    </script>
</head>

<body>
    <div>
        <button onclick="Hello();">Please Click On Me!</button>
    </div>
</body>
</html>

You can copy and paste it on a notepad/textpad and open it from a browser, then you should see a screen like below (I opened it through Google chrome)


Wednesday, January 31, 2018

What is PLC, DCS, SCADA, IoT?

What is Programmable logic controller?

PLC’s are everywhere, inside your washing machine, elevators, car manufacturing, making your favorite iPhone or Samsung galaxy phones, bundling toilet papers, etc. Simply PLC means automation of a process.

“A programmable logic controller (PLC), or programmable controller is an industrial digital computer which has been ruggedized and adapted for the control of manufacturing processes” – Wiki

PLC is basically “a digital computer” used for Industrial automation of electromechanical processes. So Unlike Personal computer, they are ruggedized and have electrical noise immunity, vibration and impact resistance, varied temperature ranges, etc.

Programmable: We can write a custom program, to interpret inputs (motor switched on) and how to output (to start motor). Later, we can change, and update or replace a program according to our future requirement so it’s called programmable.

Logic: If two conditions are met or A and B conditions are true do something. For ex: If 60 seconds over and no object in front of the gate, closed the gate. At the heart of microprocessor there are billions of transistors which is nothing but switches, opens or close the circuits based on logics or gates.

Controller: at the heart of PLC resides a Microcontroller, it is very much like a microprocessor, except that it has been designed specifically for use in embedded systems. Microcontrollers typically include a CPU, memory (a small amount of RAM, ROM, or both), and other peripherals in the same integrated circuit. If you purchase all of these items on a single chip, it is possible to reduce the cost of an embedded system substantially.

In laymen words, PLC is an electronic device, electronic means technique to control flow of electrons via semi-conductors like transistors. Transistors is like switches, which allow electrons to flow or stop. Once we have the power to control the flow of electrons, we can use that for logic purpose or decision making, that’s all.

History:
General motors issued a RFP to replace hard wired Relay based machine control systems (before the dawn of transistors, relay system was used to automate the process). Bedford associates, created the first PLC by implementing GM’s specification.

PLC System:







How to automate an Industry:

To automate an Industry, you requires minimu two things:

a) Process or Business domain knowledge: here Process means, what are the activities occurs inside an automobile industry to produce a car. For ex: building frames, painting of the car, assembling engine parts, fixing tires etc. entire these steps or full life cycle of a car production are called as Processes or Business Domain of an Industry.
A good understanding of processes helps to understand the areas to automate or improve automation of production.
   
b) PLC (microcontroller):

Programming languages of PLC:

Ladder Diagram (is used for relay diagrams, so its easy for engineers to upgrade from relay to PLC)
Functional Block Diagram
Structured Text
Sequential Function Chart (SFC)

User IDE to write program, Ex: CODESYS. Usually PLC manufactures will provide IDE's

Steps to Setup and Deploy a PLC:

Understand the Process of an Industry
          Write custom program according to automate the process
Upload custom program into PLC

Different Process/Industrial Control Systems:

PLC:
PLCs are more suitable for local area control (plants, assembly plants, production lines, etc.)
PLC is for small industries, where discrete (means, we know how many phones we are going to manufacture in a day) input and output.

DCS (distributed control system):
DCS tends to be used on large continuous process plants where high reliability and security is important, and the control room is not geographically remote. DCS is for large, spread out industry like oil and refineries, mining. Unlike PLC DCS is analog/continuous input and output.
DCS uses RTU, it is based on microprocessor, because it support wireless, wider geographical telemetry, etc.

SCADA (Supervisory control and data acquisition)/HMI: This system is similar to DCS. is a control system architecture that uses computers, networked data communications and graphical user interfaces for high-level process supervisory management, but uses other peripheral devices such as programmable logic controllers and discrete PID controllers to interface to the process plant or machinery.” wiki

IoT: is modern or next generation SCADA. Recently Industrial giants started to think to exploit the potential of IoT. Its gamer changer, where imagination is the limit how much you can automate, user can control plants, etc.  Unlike SCADA we don't need a dedicated engineer in front of graphical control system and monitor the plant or machines. Field engineer, supervisor/manager or even a company CEO can access and control the plant from his mobile phone. That’s the power of the IoT
IoT provides TLS (transport layer security) inherited technology, which was missing in SCADA.


PS: PLC, DCS, SCADA, IoT, each worth couple of books materials or more. Here I am trying to briefly describe what is PLC and other systems.

One important mention here is unlike typical software industries, inside Industrial software go through lot of processes, more testing, each version will take years to release because they deal with life and death, environment and other issues.