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
[/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]