Program FLProg. For those who do not know programming languages

|500x281

In Russia, fairly well-known free program FLProg. This program is actively used by about ten thousand people (judging by the number of downloads of the distributions of a program). The program is actively developing. New versions come out on average once every two months. Starting with version 2.0 (release was 25.09.2016) it has a English interface. But the use of the English language pack requires any license. Now license costs 10 USD . A one-time payment and no expiration dates. Read more about English version of the program can be viewed here.

The program is a visual industrial programming languages, FBD and LAD. The result of the program is code that is automatically loaded in the ArduinoIDE.

Project in the program in FBD

|500x293

Project in the program in LAD

|500x293

The program features support for MODBUS RTU, MODBUS TCP, as well as bridges between them

The list function block language FBD

  • Design

  • Label

  • Image

  • Basic elements

  • [OR]

  • [AND]

  • [Bounce]

  • [XOR]

  • State table

  • Detector changes the number

  • Detector string changes

  • Scaling

  • [Scale]

  • Nonlinear scaling

  • Triggers

  • [SR]

  • [/li]
    [li][Rtrig][/li]
    [li][RS][/li]
    [/list]
    [/li]
    [li][b]Timers[/b]
    [list type=circle]
    [li][Timer][/li]
    [li][Generator][/li]
    [/list]
    [/li]
    [li][b]Counters[/b]
    [list type=circle]
    [li][SpeedCounter][/li]
    [li][Counter][/li]
    [/list]
    [/li]
    [li][b]Math[/b]
    [list type=circle]
    [li][SUM(+)][/li]
    [li][MUL(*)][/li]
    [li][SUB(-)][/li]
    [li][DIV(/)][/li]
    [/list]
    [/li]
    [li][b]Algebra[/b]
    [list type=circle]
    [li][ABS][/li]
    [li][MAX][/li]
    [li][MIN][/li]
    [li][POW][/li]
    [li][SQRT][/li]
    [li][SQ][/li]
    [li][RANDOM][/li]
    [li][TAN][/li]
    [li][SIN][/li]
    [li][COS][/li]
    [/list]
    [/li]
    [li][b]Comparison[/b]
    [list type=circle]
    [li][Comparator][/li]
    [/list]
    [/li]
    [li][b]UART[/b]
    [list type=circle]
    [li]Send in UART[/li]
    [li]Receive from UART[/li]
    [li]Sending variable to UART[/li]
    [li]Receiving a variable from UART[/li]
    [li]Getting variable out of the ring[/li]
    [li]Sending a variable in the ring[/li]
    [/list]
    [/li]
    [li][b]Switch[/b]
    [list type=circle]
    [li][SWITCH][/li]
    [li][MUX][/li]
    [li][DMS][/li]
    [/list]
    [/li]
    [li][b]Motors[/b]
    [list type=circle]
    [li]ServoMotor[/li]
    [li]StepMotor[/li]
    [/list]
    [/li]
    [li][b]Real-time clock[/b]
    [list type=circle]
    [li][Alarm][/li]
    [li][GetTime][/li]
    [li][SetTime][/li]
    [/list]
    [/li]
    [li][b]Displays[/b]
    [list type=circle]
    [li]Display on the chip НD44780[/li]
    [li]Control block display backlight on-chip I2C HD4480[/li]
    [li]Block decoding the seven-segment indicator[/li]
    [/list]
    [/li]
    [li][b]Strings[/b]
    [list type=circle]
    [li]String concatenation[/li]
    [li]String comparison[/li]
    [li]String length[/li]
    [li]Search substring[/li]
    [li]Getting substring[/li]
    [li]Get a character from the string[/li]
    [li]Add "Char" to string[/li]
    [/list]
    [/li]
    [li][b]IR control[/b]
    [list type=circle]
    [li][IR Ressive][/li]
    [li][IR Send][/li]
    [/list]
    [/li]
    [li][b]Arrays[/b]
    [list type=circle]
    [li]Put element in the array[/li]
    [li]Getting element of array[/li]
    [li]The sum of the elements of the array[/li]
    [li]Stack[/li]
    [li]Search element in array[/li]
    [li]Copying arrays[/li]
    [/list]
    [/li]
    [li][b]Sensors[/b]
    [list type=circle]
    [li][b]Temperature sensors[/b]
    [list type=square]
    [li][DS18x2x][/li]
    [li]Contact-less Infrared Sensor - MLX90614[/li]
    [li]Signal converter K-type thermocouple MAX6675[/li]
    [/list]
    [/li]
    [li][b]Humidity sensors[/b]
    [list type=square]
    [li][DHT11, DHT21, DHT22][/li]
    [li]Sensor temperature and humidity HTU21 (GY-21)[/li]
    [/list]
    [/li]
    [li][b]Pressure sensors[/b]
    [list type=square]
    [li][BMP-085][/li]
    [/list]
    [/li]
    [li][b]Light sensors[/b]
    [list type=square]
    [li][BH1750LightMeter][/li]
    [li]Sensor color recognition TCS230[/li]
    [/list]
    [/li]
    [li][b]Distance sensors[/b]
    [list type=square]
    [li][Ultrasonic HC-SR04][/li]
    [/list]
    [/li]
    [/list]
    [/li]
    [li][b]SD card[/b]
    [list type=circle]
    [li]File upload from SD card[/li]
    [li]Save variable on the SD card[/li]
    [/list]
    [/li]
    [li][b]Types conversion[/b]
    [list type=circle]
    [li]Conversion from Float to Integer[/li]
    [li]ConvertStringBlock[/li]
    [li]-> Byte[/li]
    [li]-> Char[/li]
    [/list]
    [/li]
    [li][b]Chip extension[/b]
    [list type=circle]
    [li]Extender outputs 74HC595[/li]
    [li]Led driver MAX7219[/li]
    [li]Expander input-output MCP23017[/li]
    [li]I2C АЦП ADS1x15[/li]
    [li]MCP4725 DAC[/li]
    [/list]
    [/li]
    [li][b]Operation with bits[/b]
    [list type=circle]
    [li]Decoder[/li]
    [li]Encoder[/li]
    [li]Bit read[/li]
    [li]Bit write[/li]
    [/list]
    [/li]
    [li][b]Other[/b]
    [list type=circle]
    [li]Matrix keyboard[/li]
    [li]Piezo speaker[/li]
    [li]Scanning the bus OneWare[/li]
    [li][b]Equipment Noolite[/b]
    [list type=square]
    [li]Control transmitter Noo Lite[/li]
    [li][b]Receiver MR1132[/b]
    [list type=square]
    [li]Binding to the channel[/li]
    [li]Channel cleaning[/li]
    [li]Clear all channels[/li]
    [li]Temperature sensor PT112[/li]
    [li]Sensor temperature and humidity PT111[/li]
    [li]Motion sensor PM111[/li]
    [/list]
    [/li]
    [/list]
    [/li]
    [li][b]RFID module RC522[/b]
    [list type=square]
    [li]New card[/li]
    [li]Information about the cart[/li]
    [li]Reading the data block from the card[/li]
    [li]Save block data to the cart[/li]
    [li][b]UUID cards store[/b]
    [list type=square]
    [li]Save the UUID to the storage[/li]
    [li]Read the UUID of the card from the storage[/li]
    [li]The status of the cell storage[/li]
    [li]Save status of the cell[/li]
    [li]Lock / unlock cells[/li]
    [li]Search the UUID in the storage[/li]
    [li]Free cells in the storage[/li]
    [li]Cleaning the cell in the storage[/li]
    [li]Cleaning of all storage[/li]
    [/list]
    [/li]
    [/list]
    [/li]
    [/list]
    [/li]
    [li][b]EEPROM[/b]
    [list type=circle]
    [li]Save in the EEPROM[/li]
    [li]Reading from EEPROM[/li]
    [/list]
    [/li]
    [li][b]Communication[/b]
    [list type=circle]
    [li]SendVariableFromCommunication[/li]
    [li]RessiveVariableFromCommunication[/li]
    [li]WebServerPage[/li]
    [li]WebClient[/li]
    [li]The current Ethernet IP address of the device[/li]
    [/list]
    [/li]
    [li][b]Ready services[/b]
    [list type=circle]
    [li]narodmon.ru[/li]
    [li]goplusplatform.com[/li]
    [li]Remote management through "RemoteXY"[/li]
    [/list]
    [/li]
    [li][b]Nextion-HMI  panel[/b]
    [list type=circle]
    [li][b]Elements[/b]
    [list type=square]
    [li]Set value[/li]
    [li]Get value[/li]
    [/list]
    [/li]
    [li][b]Waveform[/b]
    [list type=square]
    [li]Add a point on the waveform[/li]
    [li]Sending the array to the waveform[/li]
    [/list]
    [/li]
    [li][b]Page[/b]
    [list type=square]
    [li]Go to the page[/li]
    [li]Get the Id of the current page[/li]
    [/list]
    [/li]
    [li][b]Drawing[/b]
    [list type=square]
    [li]Fill the current page with one color[/li]
    [li]Display image on current page[/li]
    [li]Display on the current page cut image[/li]
    [li]Draw line on current page[/li]
    [li]Draw text on current page[/li]
    [li]Draw on the current page circle[/li]
    [li]Draw on the current page filled circle[/li]
    [li]Draw rectangle on current page[/li]
    [li]Draw on the current page filled rectangle[/li]
    [/list]
    [/li]
    [li]Tracking clicks[/li]
    [li][b]System[/b]
    [list type=square]
    [li]Set the backlight level[/li]
    [li]To sleep/to wake up the panel[/li]
    [li]Command at calibration[/li]
    [/list]
    [/li]
    [li][b]Color[/b]
    [list type=square]
    [li]Conversion RGB -> Highcolor[/li]
    [li]Color constant Highcolor[/li]
    [/list]
    [/li]
    [/list]
    [/li]
    [/list]
    

The list function block language LAD

  • Design

  • Label

  • Image

  • Base blocks

  • Contact

  • Coil

  • Protection from bounce

  • Allocation of the leading edge

  • State table

  • Special relays

  • Bistable relay

  • Time relay

  • Generator

  • Comparison relay

  • Algebra

  • SIN

  • COS

  • TAN

  • ABS

  • MAX

  • MIN

  • SQ

  • SQRT

  • POW

  • RANDOM

  • Analog blocks

  • Scaling

  • Nonlinear scaling

  • Detector changes the number

  • Detector string changes

  • Math

  • Analog switch

  • Multiplexer

  • Demultiplexer

  • Analog input of the controller

  • Analog output of the controller

  • Input of the analog connector

  • Output of the analog connector

  • Counter

  • High-speed counter

  • UART

  • Send in UART

  • Receive from UART

  • Sending variable to UART

  • Receiving a variable from UART

  • Getting variable out of the ring

  • Sending a variable in the ring

  • Motors

  • Servo

  • Stepper motor

  • Real-time clock

  • Obtain the data from real-time clock

  • Alarm clock

  • Setting time for real time clock

  • Displays

  • Display on the chip НD44780

  • Control block display backlight on-chip I2C HD4480

  • Block decoding the seven-segment indicator

  • Strings

  • String concatenation

  • String comparison

  • String length

  • Search substring

  • Getting substring

  • Get a character from the string

  • Add “Char” to string

  • IR control

  • [IR Ressive]

  • [IR Send]

  • Arrays

  • Put element in the array

  • Getting element of array

  • The sum of the elements of the array

  • Stack

  • Search element in array

  • Copying arrays

  • Sensors

  • Temperature sensors

  • Temperature sensor DS18x2x

  • Contact-less Infrared Sensor - MLX90614

  • Signal converter K-type thermocouple MAX6675

  • Humidity sensors

  • Sensor of temperature and humidity DHT11 (DHT21, DHT22)

  • Sensor temperature and humidity HTU21 (GY-21)

  • Pressure sensors

  • BMP-085

  • Light sensors

  • BH1750 Light Meter

  • Sensor color recognition TCS230

  • Distance sensors

  • [Ultrasonic HC-SR04]

  • SD card

  • Save variable on the SD card

  • File upload from SD card

  • Types conversion

  • ConvertStringBlock

  • Conversion from Float to Integer

  • → Byte

  • → Char

  • Chip extension

  • Extender outputs 74HC595

  • Led driver MAX7219

  • Expander input-output MCP23017

  • I2C АЦП ADS1x15

  • MCP4725 DAC

  • Operation with bits

  • Encoder

  • Decoder

  • Read a bit

  • Write a bit

  • Other

  • Matrix keyboard

  • Piezo speaker

  • Scanning the bus OneWare

  • Equipment Noolite

  • Control transmitter Noo Lite

  • Receiver MR1132

  • Binding to the channel

  • Channel cleaning

  • Clear all channels

  • Temperature sensor PT112

  • Sensor temperature and humidity PT111

  • Motion sensor PM111

  • RFID module RC522

  • New card

  • Information about the cart

  • Reading the data block from the card

  • Save block data to the cart

  • UUID cards store

  • Save the UUID to the storage

  • Read the UUID of the card from the storage

  • The status of the cell storage

  • Save status of the cell

  • Lock / unlock cells

  • Search the UUID in the storage

  • Free cells in the storage

  • Cleaning the cell in the storage

  • Cleaning of all storage

  • EEPROM

  • Save in the EEPROM

  • Reading from EEPROM

  • Communication

  • Block sending variable through communication

  • Receiving a variable through communication

  • Web server page

  • Web client

  • The current Ethernet IP address of the device

  • Ready services

  • Transmission data on “narodmon.ru

  • Remote management through “RemoteXY”

  • Nextion-HMI panel

  • Elements

  • Set value

  • Get value

  • Waveform

  • Add a point on the waveform

  • Sending the array to the waveform

  • Page

  • Go to the page

  • Get the Id of the current page

  • Drawing

  • Fill the current page with one color

  • Display image on current page

  • Display on the current page cut image

  • Draw line on current page

  • Draw text on current page

  • Draw on the current page circle

  • Draw on the current page filled circle

  • Draw rectangle on current page

  • Draw on the current page filled rectangle

  • Tracking clicks

  • System

  • Set the backlight level

  • To sleep/to wake up the panel

  • Command at calibration

  • Color

  • Conversion RGB → Highcolor

  • Color constant Highcolor

There is very little in english. Is this only for AVR? I would like to use something like this with STM32F4 ARMs.