Arduino兼容PLC CONTROLLINO,第1部分

关于CONTROLLINO的名称,这是我第一次接触可编程逻辑控制器,是2014年,我偶然与一名选择PLC进行家庭自动化的人随机学习。 我向他推荐了一些经典模型,作为回应,他说他们在kickstarter上看到了一个有趣的项目,名为CONTROLLINIO。 这是一种工业PLC,其编程方式与本机IDE中的Arduino相同。

那家伙是一名PHP程序员,而C ++对他来说不是问题。 他有钱有主意,但没有学习LAD或Codesys的愿望。 结果,他退订了他已经订购了CONTROLLINO,并且不再联系他了。

我不知道最终结果如何,但是三年后,我不得不使用该设备。



当用笔吱吱作响时,我意识到会有很多材料。 因此,我将关于CONTROLLINO的故事分为两部分:第一部分是关于铁的,第二部分是关于编程的。

目前,生产了4种CONTROLLINO模型:MINI,MAXI,MAXI-AUTOMATION和MEGA。 我曾与MAXI合作。


CONTROLLINO MAXI的简短特性:

  • 微处理器ATmega2560
  • 12个通用数字/模拟输入
  • 12个晶体管输出,可以在PWM模式下工作
  • 10个继电器输出,〜250V / 6A
  • 非易失性RTC
  • 乙太网路
  • RS-485
  • SPI,I2C,2xRS-232 TTL
  • 电源12或24V DC
  • 尺寸72x90x62mm
  • DIN导轨外壳
  • 与Arduino MEGA 2560兼容的软件

CONTROLLINO和ARDUINO


首先,应该说在某些情况下,CONTROLLINO不是带有端子而不是引脚的Arduino。

CONTROLLINO是可编程逻辑控制器PLC。 即,用于自动化的成品,具有对输入和输出的适当保护。 Arduino这样的CONTROLLINO设计(即,基于atmega芯片的调试板)仅与所使用的微处理器有关。

如果我们拆解CONTROLLINO(我们将对其进行分析),那么在内部我们将找不到焊接到中国盾牌上的arduino,甚至更糟的是,将电线扭绞到端子上的arduino。
在软件级别提供了兼容性,CONTROLLINO MAXI可以通过Arduino IDE编程为Arduino MEGA 2560开发板,而ATmega2560就是同一处理器。

这里的许多人正确地反对PLC标准当然是好的,但是该PLC就像PLC,并且从arduins和盾牌中您可以以更便宜的价格组装系统。 我不会争论,我自己做了,一切正常。 它看起来像kickstarter 页面上文章英雄的原型照片。



另一方面,我知道很多人打开了Arduino平台的功能,购买了它们,使LED闪烁并...将其投射在上面。 掌握了编程的基本知识后,他们突然意识到,他们需要更多的时间来处理电子设备,将所有事情都牢记在心并组装成品。 突然发现,您的时间确实物有所值,并且您不希望在没有明显前景的情况下花费时间。

迪玛,你好!
住在另一个地区的同学开了一个很棒的创业公司。 借助Internet的最新发展,他搬出了城镇,建造了生产率高的月光。 一切都很好,结果证明该产品非常出色(用他的话来说,我对此几乎一无所知)。 但是技术过程持续了48小时,在此期间需要打开,关闭,拧松,扭曲等内容。 适度入睡,开始两到三个小时。

自然,这个想法产生了自动化生产。 他向我寻求建议,我告诉了他有关PLC的知识。 过了一会儿,他接我,说他买了一件很棒的东西,叫Arduino。 用Arduino语言C语言已经闪烁的LED,自从我们学习计算机科学以来,他就没有忘记它。 剩下的唯一事情就是购买屏蔽层,自己焊接一些东西,然后将生产提高到一个新的水平。

但是一年过去了,又过了两个,然后LED没了。 尽管养蜂可能会干扰新的爱好。

我认为,CONTROLLINO将对那些不能或不想自己为家庭自动化生产PLC而准备购买成品的arduino工人感兴趣。 此外,CONTROLLINO还具有在“智能家居”中使用的所有功能:34个I / O点,多个通信接口以及从Internet管理所有这些功能的能力。

最后,CONTROLLINO简直就是美丽。

建筑施工






取下盖子。



机箱内有3个板。 我们拿出顶部。



我们看到了不错的老式W5100芯片,它提供了以太网。

还有一个atmega16微处理器。 并非令我感到惊讶。 我已经观察到带有几个微处理器的PLC,例如在Aries公司的模型中。 但是这个处理器在这里做什么? 事实证明一切都很简单-他负责通过USB下载。 就像原始的意大利开发板Arduino MEGA 2560一样。



您和我一样,很可能会拥有中文克隆,并且其中的常规USB / RS232转换器已启动。

CONTROLLINO MAXI的中下部板焊接在一起,a。



在底部“继电器”板上可以看到约250V / 6A的HF41F继电器。 我们只能看到一侧的平均板数。



我们看到了ATmega2560微处理器以及输入和输出的绑定。

为了找到CONTROLLINO输入和输出与Arduino MEGA 2560开发板引脚的对应关系,开发人员绘制了一张大图。



PLC端子名称为黄色,而Arduino Mega 2560引脚名称为蓝色,例如,PLC上的R0继电器对应于Arduino Mega 2560引脚22。



要闭合继电器R0,在草图中,您需要编写以下说明:

void setup() { pinMode(22, OUTPUT); } void loop() { digitalWrite(22, HIGH); } 

但这是下一篇文章的主题。

通用输入



12个输入,程序中的每个输入都可以视为模拟或离散输入。 它们中的两个IN0和IN1可用作中断输入。



模拟输入为伏特,其范围取决于PLC的电源电压。 如果PLC由12V供电,则模拟信号的范围为0 ... 13.2V。 如果PLC由24V供电,则模拟信号范围为0 ... 26.4V。 ADC 10位。

晶体管输出



12个离散晶体管输出,每个可用作PWM。



继电器输出



HF41F继电器〜250V / 6A。 6 Amp还是不够。 我将选择这样的继电器是因为它们很窄,可以放置在较小的区域。



非易失性实时时钟

作为实时时钟(RTC),此处未使用在I2C总线上工作的DS1307芯片。 在这里,带有SPI接口的RV-2123-C2-TA-QC-020芯片可以工作数小时。

通常,CONTROLLINO中的三个“附加”电路(以太网,RS-485和RTC)中有两个在SPI总线上运行,而在I2C上则没有。 这种方便的“方形”总线完全免费连接用户设备,例如带有I2C总线的自制操作员面板

查看RTC接线图,并注意蓝色字段中的破折号。

破折号表示未输出到Arduino MEGA 2560引脚的ATmega2560微处理器支脚已连接到此和其他“附加”微电路的相应触点。您不能使用标准digitalWrite()命令从Arduino IDE来控制这些支脚,而只能直接访问端口。 这种示意性解决方案在编程过程中有其优点和缺点(更多的是问题),我将在下一部分中进行介绍。

RS-485

没有RS-485端口,任何现代PLC都无法做到,CONTROLLINO也不例外。 为此,在其中安装了SN65HVD08芯片。



RS-485可以在主模式和从模式下工作。

乙太网路

最后是熟悉的筹码! W5100芯片已经成为“将arduino连接到Internet”这一概念的代名词。 W5100在CONTROLLINO中提供了以太网接口。



按照标准接线图中的惯例,没有4条Arduino支脚连接到SCS触点,而是另一个“破折号”,这并不会使编程复杂化-所有示例都可以正常工作。

在尝试以太网时,我将Web服务器部署到CONTROLLINO,并使用Blynk android应用程序通过智能手机管理此PLC。

连接器X1和X2

一些微控制器信号不仅以带有相应捆扎带的输入和输出形式输出到端子,还通过保护电阻器直接输出到两个26针连接器X1和X2。




一些微处理器信号输出到端子和连接器,一些仅在端子上可用,而另一些仅在连接器上可用。 例如,SPI和I2C接口仅输出到连接器,继电器输出信号R0 ... R9仅在端子上可用,模拟输入A0 ... IN1在连接器和端子上可用。

当然,端子和连接器上的相同信号是以不同方式连接和使用的。 例如,通用输入A0 ... IN1可以被编程为程序中的输出 ,并可以通过连接器使用,但是它们将无法通过端子与输出一起使用-绑定会受到干扰。

连接器X1和X2使PLC的使用更加灵活,使您可以连接在其工艺中使用arduino的模块。 说,DTH22传感器或方形总线芯片。

因此, 我制作了一个可在I2C上运行并通过连接器X1连接到CONTROLLINO的操作员面板。



这就是铁。 在下一部分中,我将讨论CONTROLLINO PLC的编程功能,如何通过来自世界各地的智能手机通过Internet对其进行控制,CONTROLLINO如何在ModbusRTU上工作等等。

参考文献

→CONTROLLINO 官方网站
→kickstarter上的页面
Facebook项目
RV-2123 SPI RTC
SN65HVD08 RS-485
HF41F继电器

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


All Articles