Program FLProg. For those who do not know programming languages

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

Project in the program in LAD

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]Timers
[list type=circle]
[li][Timer][/li]
[li][Generator][/li]
[/list]
[/li]
[li]Counters
[list type=circle]
[li][SpeedCounter][/li]
[li][Counter][/li]
[/list]
[/li]
[li]Math
[list type=circle]
[li][SUM(+)][/li]
[li][MUL(*)][/li]
[li][SUB(-)][/li]
[li][DIV(/)][/li]
[/list]
[/li]
[li]Algebra
[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]Comparison
[list type=circle]
[li][Comparator][/li]
[/list]
[/li]
[li]UART
[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]Switch
[list type=circle]
[li][SWITCH][/li]
[li][MUX][/li]
[li][DMS][/li]
[/list]
[/li]
[li]Motors
[list type=circle]
[li]ServoMotor[/li]
[li]StepMotor[/li]
[/list]
[/li]
[li]Real-time clock
[list type=circle]
[li][Alarm][/li]
[li][GetTime][/li]
[li][SetTime][/li]
[/list]
[/li]
[li]Displays
[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]Strings
[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]IR control
[list type=circle]
[li][IR Ressive][/li]
[li][IR Send][/li]
[/list]
[/li]
[li]Arrays
[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]Sensors
[list type=circle]
[li]Temperature sensors
[list type=square]
[li][DS18x2x][/li]
[li]Contact-less Infrared Sensor - MLX90614[/li]
[li]Signal converter K-type thermocouple MAX6675[/li]
[/list]
[/li]
[li]Humidity sensors
[list type=square]
[li][DHT11, DHT21, DHT22][/li]
[li]Sensor temperature and humidity HTU21 (GY-21)[/li]
[/list]
[/li]
[li]Pressure sensors
[list type=square]
[li][BMP-085][/li]
[/list]
[/li]
[li]Light sensors
[list type=square]
[li][BH1750LightMeter][/li]
[li]Sensor color recognition TCS230[/li]
[/list]
[/li]
[li]Distance sensors
[list type=square]
[li][Ultrasonic HC-SR04][/li]
[/list]
[/li]
[/list]
[/li]
[li]SD card
[list type=circle]
[li]File upload from SD card[/li]
[li]Save variable on the SD card[/li]
[/list]
[/li]
[li]Types conversion
[list type=circle]
[li]Conversion from Float to Integer[/li]
[li]ConvertStringBlock[/li]
[li]-> Byte[/li]
[li]-> Char[/li]
[/list]
[/li]
[li]Chip extension
[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]Operation with bits
[list type=circle]
[li]Decoder[/li]
[li]Encoder[/li]
[li]Bit read[/li]
[li]Bit write[/li]
[/list]
[/li]
[li]Other
[list type=circle]
[li]Matrix keyboard[/li]
[li]Piezo speaker[/li]
[li]Scanning the bus OneWare[/li]
[li]Equipment Noolite
[list type=square]
[li]Control transmitter Noo Lite[/li]
[li]Receiver MR1132
[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]RFID module RC522
[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]UUID cards store
[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]EEPROM
[list type=circle]
[li]Save in the EEPROM[/li]
[li]Reading from EEPROM[/li]
[/list]
[/li]
[li]Communication
[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]Ready services
[list type=circle]
[li]narodmon.ru[/li]
[li]goplusplatform.com[/li]
[li]Remote management through "RemoteXY"[/li]
[/list]
[/li]
[li]Nextion-HMI  panel
[list type=circle]
[li]Elements
[list type=square]
[li]Set value[/li]
[li]Get value[/li]
[/list]
[/li]
[li]Waveform
[list type=square]
[li]Add a point on the waveform[/li]
[li]Sending the array to the waveform[/li]
[/list]
[/li]
[li]Page
[list type=square]
[li]Go to the page[/li]
[li]Get the Id of the current page[/li]
[/list]
[/li]
[li]Drawing
[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]System
[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]Color
[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.