步骤1:简介
在此指导中,我将处理:
2种方法来对与某种机器(包括按钮,开关和LED)链接的arduino进行编程
1-使用SM库(状态机)使用arduino 1.6.x IDE的第一种方法
2-使用Yakindu(使用以下方法创建的状态图编辑器项目)的第二种方法蚀环境:绘制状态机,然后它会生成代码以传输到Arduino板。
与
相关的两种方法来监控状态机运行的SCADA或虚拟HMI:
1-在Android 4.4下:Unigo Evolution,这是一个免费的应用程序,没有代码,只有项目可放置在屏幕上,并且Modbus TCP
2 -在Windows 8下:一个免费项目AdvancedHMI,它需要Visual Studio 2013,无需任何代码和项目即可放置在屏幕上和modbus TCP
因此您可以绘制f带有SFC的功能性序列(在自动化中为:顺序功能图),将其转换为状态图(非常接近),对其进行编程(Yakindu或Arduino SM lib),然后使用SCADA(Unigo android或AdvancedHMI Windows)对其进行监督)。
第2步:实板说明:
示意图:
我使用了Arduino UNO板,而不是克隆板,因为Yakindu不能仅将UNO和Mega板发送到任何克隆程序。
我可以拥有32个数字I/O,带有2个SPI扩展器(如MCP23S17)(2x16 I/O)和2个更多的模拟12位输出(不经过PWM滤波的真实模拟),以及2个SPI DAC,如MCP4921。
我没有画出以太网屏蔽,但是您需要用它来监视系统:因此,引脚4、10、11、12和13不得用于其他任何用途,显然引脚0和1仅用于RX TX。
真实的照片:
需要8个按钮:
4个用于手动模式:每个灯一个led
1紧急停止:如果按下,则处于正常模式,松开:紧急
1处于自动模式,如果每个LED松开,则依次点亮和熄灭顺序指示灯:手动模式,以无顺序控制每个led
在自动模式下为RUN
1在自动模式下为STOP
4 led模拟您想要的任何东西(继电器,阀门。..)
我给出程序中使用的每个按钮和指示灯的名称。
步骤3:编程顺序? SFC和状态图
我制作了一个非常简单的SFC来描述系统应该做什么。
3需要SFC:
SFCsecu进入或退出紧急模式,这是主SFC启动其他
SFCsecu启动的SFC自动手册,您可以访问
自动模式或手动模式
SFC运行停止,扫描并存储是否有人按下DCY(RUN)或FCY(STOP)
这些SFC以伪随机方式运行。
然后我将它们转换为状态图:
一台主计算机(紧急情况)启动了另外两个从属计算机
一个用于扫描和扫描的从属计算机记住DCY和FCY
从属设备进入自动或手动模式
另一件事:当您按下DCY时,您可以在虚拟微调器上引导模拟输出一个scada,当您按FCY键时,模拟输出降至0V。
状态图可帮助您对arduino进行编程。
第4步:使用Arduino IDE 1.6编程。X
我为您提供了转换先前图表的代码。我也需要3个附加库。
您还将需要地址表来了解用于什么引脚以及modbus寄存器对应的地址。
步骤5:使用YAKINDU编程
首先在以下网址下载免费项目版本2.9(非专业版):
https://www。 itemis.com/en/yakindu/state-machine/
然后按照提供的教程进行操作:与上次下载程序相比,有一些修改,仅适用于“ xxxconnector”不同部分的名称。 .cpp”文件完成。
图片:状态机的图,项目中文件夹的视图及其从arduino导入的库,“ xxxconnector.cpp”视图以建立链接在板或SCADA的转换/状态与实际输入/输出之间。
我给您提供您仅需导入到自动创建的工作区中的项目。
还提供:导入Yakindu所需的库,以及在tut中描述的一些更改
步骤6:使用AdvancedHMI对其进行监督
首先在以下位置下载Visual Studio Express 2013或更高版本:
https://www.microsoft.com/fr-fr/download/details.a 。..
然后在以下位置下载AdvancedHMI项目:
https://sourceforge.net/projects/advancedhmi/?SetF 。..
我为您提供了我绘制的SCADA图片(带有相应的Modbus寄存器地址),并且没有代码进行编程,项目已修改和简短的教程。
第7步:使用Unigo Evolution对其进行监督
您需要一个Android devide与android 4.4(套件kat)和一个7英寸的屏幕。
我给你我绘制的SCADA的图片(以及相应的modbus寄存器地址),以及使用Unigo的简要教程(无需代码),一个包含图片的文件夹应用程序和项目将工业照明灯和按钮放置在内部SD上创建的UniGOPictures文件夹中。
步骤8:结论
它是一个巨大的要求将2种不同的编程方式和2种不同的监督方式放在一起。一开始很难习惯每种方式的技能。但是现在它可以工作,并且一旦被理解,您就可以控制更复杂的系统。
责任编辑:wv
-
编程
+关注
关注
88文章
3623浏览量
93797 -
Arduino
+关注
关注
188文章
6471浏览量
187287
发布评论请先 登录
相关推荐
评论