在IOT学习(四)中,介绍了当驱动出现问题时发邮件。报告状态的方法。
通常,IOT2K是通过云服务器与外部连接的;客户端(手机等)也是通过云服务器与IOT2K交换信息,进而控制它下辖的装置的。
在不产生费用的条件下,使用邮件服务器,也是一种选择。对吧?
在这帖子中,介绍一下:如何通过邮件去设置驱动的参数:
首先,从社区节点中,拖入一个收邮件的节点(输出信息流在右边)
这个节点的功能是:
按设置好的时间间隔,使用安全链接,去检查指定邮件账号上,收件箱中的未读邮件。
双击,按要求设置接收邮件的参数:
图2
这是每100秒检查一次指定邮箱。(你在它后面 接上一个debug节点,仔细看看都会得到什么样的未读邮件)
如果你能使IOT2K接受到了未读的邮件。那么,下一步就可以继续了!
现在的问题是:如何在一堆未读邮件中,检索出是给IOT2K下指令的邮件!
我是这样考虑的:
1、每封邮件都有个主题。那好,我们就指定个主题:例如:当主题是“IOT2KSET”时,这封邮件就是给IOT2K的。
2、IOT2K下面有好多设备:S7 1200、LOGO!、变频器G120-2PN等等;怎么区分指令是给谁的?我自己规定一个邮件内容格式不就行了?
我自己规定,内容格式为:装置:参数名:数值;中间用冒号分割。
比如,我要设置 G120 CU250的最大速度(P1082)为 1350.5转/分,那么邮件就应该写成这样:
图1
(这些都是你自己按需要规定的)有了规矩,下面就好办了。
再拖入一个switch节点。首先检查 邮件主题(topic)是不是IOT2KSET。如果是,邮件内容将出现在它的输出!(注意:因为只有一个IOT2K模块。如果你有多个IOT2K模块分布在不同的地方,那么,应该用邮件主题来区分,如:IOT2K1SET、IOT2K2SET、IOT2K3SET;每个IOT2K自己会找到给它的邮件的。)
图3
在它的后面(这已确认邮件发来了给模块的指令),需要再拖入个switch节点,用来分析是给IOT2K下辖的哪个装置的。
我这里只是简单地表示一下方法。实际上,从这里可以分路去分别控制S7 1200、LOGO、变频器。
这个节点的作用就是:邮件内容包含(contains)“CU250”就从1输出信息流。
(如果你添加了S71214,就从2输出信息流,后面就去处理PLC的对象。)
图4
好了。可以确认在这个(Chk CU250)节点后面输出的指令,就是给变频器的。下面的任务,就是分析指令内容去执行了。
仍然拖过一个switch节点。根据需要,添加判断结果的输出。
图5
可以确认 MAXSPEED的输出就是要去设置变频器的最大频率P1082!所以,下面就是要把设置值取出来送给变频器就完成了。
为此,我们需要拖入一个function函数,将msg.payload(邮件内容)中的数值取出来。
在fuction中写入 javascript 代码。
这些对象的属性都是规定好的,直接简单使用。这个也可以自己做个lib,重复使用。
图6
最后,从输出(output)拖入一个 s7 节点。做一下设置。
图7
图8
完成后,发布到IOT2K
如前面的邮件那样,自己发一封邮件。不一会儿,IOT2K就接收、检查未读邮件,随后立即向变频器CU250设置了参数 P1082=1350.5rpm。
图9
是不是很容易?
下一帖,我们来说说 就 Javascript 要比PLC编程容易得多。