我是靠谱客的博主 从容水蜜桃,最近开发中收集的这篇文章主要介绍python 欧姆龙plc通信_电脑与欧姆龙plc通过网络通信,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

读指定地址的值(命令码为00000002,fins中的命令为0101)

参考文章中以读DM存储区举例,因为我实际用到的是CIO存储区,所以我以CIO存储区举例

2.1 按照字(word)读

查同一个作者的另一篇文章,欧姆龙OMRONPLC之HostLink通讯协议-FINS命令W字/位操作篇,CIO存储区按照字的代码为B0,读取CIO区地址0000中的值,读一个长度的字

发送:46494E53 0000001A 00000002 00000000 08000020 01000002 00FF0101 B0000000 0001

返回:46494E53 00000018 00000002 00000000 C0000200 02000001 00FF0101 000000C1

没有找到对08000020的解释

01000002的头和尾分别为接收方和发送方

0101是命令

B0000000前两位是CIO的地址码,接下去的四位是字对应的地址,我读的是0000,最后两位是位的地址,因为是按字读,所以这边就是00不用管

0001表示读一个字

返回码中的最后4个十六进制数中,两位(0000)表示成功,00C1就是读到的值

需要注意的是,一个字读出来值占两个十六进制,因为一个字的位有0-15,最大就是11111111 11111111(这是我的理解,不确定是不是有错误),所以一个字占两个十六进制。

2.2 按照位(bit)读

CIO存储区按位的代码为30,读取CIO区地址000104的值,读一个位(地址000104就是输入变量I01.04的地址)

发送:46494E53 0000001A 00000002 00000000 80000200 01000002 00FF0101 30000104 0001

接收:46494E53 00000017 00000002 00000000 C0000200 02000001 00FF0101 000001

这里接收到的和上面按字读同样是读一个长度,但是字一个长度由两个十六进制组成,而位由一个十六进制组成,注意区别,在写入的时候也要注意

读的时候还遇到过一个问题,命名CIO0100地址中是有值的,但是读出来全是0,那是因为犯了个错误,这里的CIO0100用的是十进制,发送的是十六进制,所以应该是0064地址,其实只是个小问题,仔细一点。

最后

以上就是从容水蜜桃为你收集整理的python 欧姆龙plc通信_电脑与欧姆龙plc通过网络通信的全部内容,希望文章能够帮你解决python 欧姆龙plc通信_电脑与欧姆龙plc通过网络通信所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部