
本文讲述如何利用node-red与欧姆龙CP1H进行以太网连接,读取PLC地址数值或多个读取,网页效果图如下。

网页效果图如上,下面开始讲解图上功能该如何制作,首先准备一个欧姆龙PLC,型号为CP1H,该型号图示如下。

接通电源,如下图示。

本型号没有内置以太网接口,需添加模块,模块型号为CP1W-CIF41。

添加模块后可以自行设置模块IP地址,本文模块IP地址为192.168.1.10。
说明:本型号PLC在添加模块后,需先用数据线直连通讯,找到D32455和D32456这两个寄存器中的十六进制数并转换成十进制,如模块插在选件板插槽1需查看D32155和D32156,还需要注意选件板插在插槽1位置要把DIP5往右拨,找到寄存器中十六进制转换成十进制后可以进入网页设置或更改地址,如本文地址为192.168.1.10那么网页地址为入,设置完成后在换成网口通讯。
网口通讯完成后,我们在程序里写几条程序方便读取数值,如下图示。

由于作为案例来使用,写了几条简单的数据转移指令,也可以自行写指令。
程序下载通讯完成后,打开node-red。
打开node-red后,需先添加几个节点,节点为(node-red-dashboard,node-red-node-ui-table,node-red-contrib-omron-fins),如下图示。



下载完成后,拉出第一个节点。





拉出第二个节点。


拉出【button】节点。

打开【button】节点,在【group】栏选中之前配置的【[plc测试]IP地址】,在【label】栏输入【连接PLC】,【payload】属性值为【】,【topic】属性值为【】,如下图所示。

拉出【function】节点。

【function】节点能够在【功能】节点工具箱中找到,打开【function】节点,在【名称】栏输入【函数1】,代码如下图所示。

拉出【finscontroal】节点。


进入【finsconnection】节点,在【protocol】栏选择【tcp】网络通讯,【mode】栏选择【cp】型号,【host】栏输入PLCIP地址,【port】栏输入端口号,【ICF】栏输入【0x80】,【DA1】栏输入IP地址最后几位数,【SA1】栏输入【179】,如下图所示。


再次拉出【button】节点

打开【button】节点,在【group】栏选择【[PLC测试]IP地址】群组,【label】栏输入【断开PLC】,【topic】栏属性值为【】,如下图所示。

再次拉出【function】节点。

打开【function】节点,在【名称】栏输入【函数2】,输入以下代码。

拉出【text】节点。

打开【text】节点,在【group】栏选择【[PLC测试]IP地址】,【label】栏输入【状态】,【valueformat】栏属性值为【{{}}】,如下图所示。

再次拉出【text】节点置于【连接PLC】节点后方。

打开【text】节点,在【group】栏选择【[PLC测试]IP地址】,【label】栏输入【PLC地址】,【valueformat】栏属性值为【】,如下图所示。

把【函数1】节点跟【状态】节点相连,【函数2】节点跟【用于控制目的】节点相连,如下图所示。

拉出【inject】节点跟【状态】节点相连。

打开【inject】节点,属性值条件为【】=【时间戳】,如下图所示。

另起一行,拉出【textinput】节点。



拉出【change】节点。

打开【change】,选择【设定】,属性值条件为【】tothevalue【】,如下图。

拉出【button】节点。

打开【button】,在【group】栏选择【[PLC测试]读取内存地址】群组,【label】栏输入【读取内存】,【payload】栏输入【】,【topic】栏输入【】,如下图所示。

拉出【finsreadmultiple】节点。

打开【finsreadmultiple】节点,在【name】栏输入【fins读取多个】,在【connection】选择建好的IP地址,在【addresses】栏属性值【】,在【outputproperty】属性值为【】,【output】栏选择【unsigndkey/value】,如下图所示。

拉出【function】节点。

打开【function】节点,代码如下图所示。

拉出【text】节点。

打开【text】节点,在【group】栏选择【[PLC测试]读取内存地址】,在【label】栏输入【数值】,【valueformat】栏属性值为【{{[0]}}】,如下图所示。

另起一行拉出【form】节点。



拉出【finsread】节点。

打开【finsread】节点。在【name】栏输入【fins读取】,在【connection】栏选择IP地址,【address】栏属性值为【】,【count】栏属性值为【】,【outputproperty】栏属性值为【】,【output】栏选择【unsignedkey/value】,如下图所示。

拉出【function】节点。

打开【function】节点,输入以下代码,如图所示。

打开节点管理下载节点(node-red-node-ui-table),如图所示。

拉出【table】节点。

打开【table】节点,在【group】栏选择【[PLC测试]读取多个内存地址】,如下图所示。

拉出【inject】节点,与【函数】节点相连,如下图所示。

打开【inject】节点,属性值为【】={}json,如下图所示。

{}json内容为,如下图所示。

把【inject】节点跟【fins读取多个】节点后的【函数节点】相连,如下图所示。

把【用于控制目的】节点跟【fins读取多个】和【fins读取】相连,如下图所示。

部署完成后我们就可以进入网页观看效果图了.

网页效果图如下。
资源地址:/2448.html
免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系