让我自我介绍-FLProg项目



下午好。

我叫Sergey Glushenko,是FLProg项目的作者这个博客致力于这个项目,在这里我将讨论该项目的新闻以及该项目用户社区成员的成就。该项目致力于为Arduino开发板创建可视化编程环境,因此,在谈论FLProg程序之前,我想简要介绍一下为这些开发板编程的现有程序。

Arduino开发板的编程环境可以分为以下几种类型:
  1. 抽记事本
  2. 文字开发环境
  3. 图形化环境可视化代码的结构。
  4. 以图形形式显示代码的图形环境。
  5. 不使用代码的可视化编程环境。


考虑每种类型。

抽水“记事本”

此类型包括原始编程环境Arduino-IDE及其许多克隆。



在其中为控制器设计程序的过程是使用“处理/接线”语言进行的,该语言是C语言(而是C ++)的一种方言。实际上,该环境是常规文本编辑器,能够将编写的代码加载到控制器中文

本开发环境

Atmel微控制器制造商AVRStudio的开发环境是Arduino IDE的替代方案。



编程是用纯C语言进行的,它已经具有更多的功能,并且更像是用于“真实”编程语言的严肃的IDE。

这两类程序是为有经验的程序员设计的,他们非常了解该语言并且可以使用它们来创建严肃的项目。

图形化环境可视化代码的结构。

这些程序实际上是常规文本代码编辑器的格式扩展。在该程序中,该程序也用C编写,但是使用了更方便的方式。现在有很多这样的环境,最引人注目的示例:Scratch,S4A,Ardublock。它们非常适合于C编程的基础学习,因为它们完美地展示了该语言的结构和语法。但是对于大型,严肃的项目,该程序很麻烦。



图形环境以图形形式显示代码

这些程序可以隐藏代码,并用图形化的对应代码代替。语言的结构也在其中重复,形成了循环,过渡,条件。它们也非常适合学习如何构建算法,然后过渡到使用经典语言进行编程。而且由于显示的麻烦,它们也不适合用于大型项目。此类程序的示例:MiniBlog,Algorithm Builder,Flowcode



上述程序类型是为程序员或决定学习经典程序设计的人员设计的。但是对于最终设备的制造,除了直接对控制器进行编程外,通常还需要开发外部电路板,开发和计算电源部分,输入接点等等。程序员经常对此有疑问。但是电工和电子工程师在这方面做得很好。但是在他们当中,很少有程序员可以为控制器编写程序。程序员和电子工程师的结合很少见。由于这种情况,基于Arduino板(甚至其他控制器)单元的真实,完整的项目已经完成。为了解决该问题,使用后一种类型的程序。

不使用代码的可视化编程环境。

这些程序实现了几乎所有工业控制器制造商使用多年的原理。它包括以FBD或LAD语言为控制器创建程序。实际上,它们不是语言。相反,它们是用于绘制原理图或逻辑电路的图形环境。回想一下,处理器并非总是微处理器,而是基于数字微电路创建的。因此,那些习惯于使用数字技术的人将比在经典的编程语言中编写代码更喜欢在数字技术上工作。 Horizo​​nt和FLProg项目就是此类程序的一个示例。这种类型的程序非常适合研究脉冲和中继技术的构造以及创建严肃的项目。


最后,这个博客的英雄,FLProg项目

由于我从事过程控制系统开发工作已有多年,因此我尝试在FLProg程序中收集领先的工业设备制造商(Tia-Portal,Zelio Soft,Logo Soft Comfort)环境中最喜欢的一切。
该程序允许您以两种形式制作电路:功能电路(FBD)和继电器电路(LAD)。



FBD (Function Block Diagram) – 61131-3. , . . () — , (, , , , , , , .). , . , . . .


Ladder Diagram (LD, LAD, ) – () . , . , . , , . - , , . ( — ; — ). , . , — . , .

事实证明,这种编程方法非常方便,便于电气工程师和电子工程师轻松进入ACS系统的开发。在开发设备设计时,他们可以轻松地将这些设备的操作绑定到控制器操作算法。

基于这些视图,FLProg可与Arduino一起使用。为什么?
该板非常便于快速开发和调试其设备,这不仅对无线电爱好者很重要,而且在例如学校界和大学培训实验室中也非常有用。优点之一-您不需要程序员。您将Arduino开发板连接到计算机,并从开发环境下载完成的程序。当前,有各种各样的Arduino模块,与Arduino合作的其他模块,传感器和执行设备。

目前,该程序支持以下Arduino版本:Arduino Diecimila,Arduino Duemilanove,Arduino Leonardo,Arduino Lilypad,Arduino Mega 2560,Arduino Micro,Arduino Mini,Arduino Nano(ATmega168),Arduino Nano(ATmega328),Arduino Pro Mini,Arduino Pro( ATmega168),Arduino Pro(ATmega328),Arduino UNO。此外,英特尔Galileo gen2主板最近出现在受支持的控制器列表中。将来,应该补充此列表,并可能添加基于STM控制器的电路板。



FLProg程序中的一个项目是一组独特的板,在其上组装了通用电路的完整模块。为了方便起见,每个板都有一个名称和注释。同样,可以最小化每个板(以在完成工作后节省工作区域中的空间)并进行部署。

目前,FBD语言的元素库的组成。

  • [OR]
  • [AND]
  • [Bounce]
  • [XOR]

  • [Scale]

  • [SR]
  • [TT]
  • [Rtrig]
  • [RS]

  • [Timer]
  • [Generator]

  • [SpeedCounter]
  • [Counter]

  • [SUM(+)]
  • [MUL(*)]
  • [SUB(-)]
  • [DIV(/)]

  • [COS]
  • [ABS]
  • [MAX]
  • [POW]
  • [SQRT]
  • [TAN]
  • [MIN]
  • [SQ]
  • [RANDOM]
  • [SIN]

  • [Comparator]

UART
  • UART
  • UART
  • UART
  • UART

  • [SWITCH]
  • [MUX]
  • [DMS]

  • ServoMotor
  • StepMotor

  • [Alarm]
  • [GetTime]
  • [SetTime]

  • D44780
  • D44780 I2C

  • Char


  • [DS18x2x]
  • [IR Ressive]
  • [Ultrasonic HC-SR04]
  • [DHT11, DHT21, DHT22]
  • [BMP-085]
  • [BH1750LightMeter]

SD
  • SD
  • SD

  • Float Integer
  • -> Byte
  • -> Char

  • 74HC595
  • MAX7219


  • OneWare

EEPROM
  • EEPROM
  • EEPROM

  • RessiveVariableFromCommunication
  • WebServerPage
  • SendVariableFromCommunication
  • WebClient

  • narodmon.ru
  • goplusplatform.com
  • RemoteXY


目前,LAD语言的元素库的组成。



  • SIN
  • COS
  • TAN
  • ABS
  • MAX
  • MIN
  • SQ
  • SQRT
  • POW
  • RANDOM


UART
  • UART
  • UART
  • UART
  • UART



  • HD44780
  • HD4480 I2C

  • Char


  • HC-SR04
  • DHT11 (DHT21, DHT22)
  • DS18x2x
  • IR Ressive
  • BMP-085
  • BH1750 Light Meter

SD
  • SD
  • SD

  • Float Integer
  • -> Byte
  • -> Char

  • 74HC595
  • MAX7219


  • OneWare

EEPROM
  • EEPROM
  • EEPROM

  • Web
  • Web

  • narodmon.ru
  • RemoteXY



在后续文章中,我将详细介绍该项目,最后是一段简短的视频,展示该程序的工作原理以及通过智能手机上的应用程序控制开发板的功能。

Source: https://habr.com/ru/post/zh-CN387429/


All Articles