欧姆龙 单元号重复PLC中CIO和W地址能重复吗?比如用了I0.01再用W0.01可以吗?

欧姆龙PLC中W0.05 和I0.05有什么区别,我刚学有点不理_百度知道
欧姆龙PLC中W0.05 和I0.05有什么区别,我刚学有点不理
我有更好的答案
W区是内部寄存器,不能用来输出,而I是外部输入触点,是实际的物理触点
为您推荐:
其他类似问题
欧姆龙plc的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。查看: 1614|回复: 0
电脑pc读写欧姆龙plc的方法
认证徽章论坛徽章:25
本帖最后由 qingyun 于
22:46 编辑
plc市场,主要还是西门子和三菱;
欧姆龙也偶尔接触;项目用到;被迫大致研究了一下它的通讯协议,不是很测底,也没找到很好的官方文档参考;
主要是对bit位的写入处理还不知道如何实现,不过好在真实项目中,对bit位大部分都是读取,很少有写入操作;
其他的plc,比如:
倍福plc,官网上有详细的demo,但是尽信书不如无书,它的sample只是介绍了单个数据点的读写,这个对于高速大量通讯来说,吃不消的;
稍微摸索一下,其实可以做成结构体或数组的批量读写;
这个功能的实现感觉非常重要:不但保证了快速批量读写,还确保了类似数据库里的事务(transaction)一致性的处理
不过最好还是有直接通讯的方法,要用它的 TWinCat作为桥梁,这不免感觉有些隔靴搔痒,交互起来不够痛快;
理论上也是有办法破解它的底层协议的,但是估计比较难,TwinCat里有个初始化连接的处理,感觉挺深奥的;没有信心去破解底层了;
还有AB,ABB plc,估计也和倍福plc类似,都是偏高级语言的套路,通讯也是有其特有的中间工具;
有一次客户使用的AB PLC;由于不懂如何和其通讯;逼着客户拆掉换成了西门子1200;
估计以后西门子也会转成倍福的这种方式;可能就废掉S7协议,到时候估计就没能力破解它的底层协议了;
只能老老实实用他们自身的中间件,好在工控领域不想互联网那么日新月异;还可以让老家伙们继续折腾一段时间;
其实plc的协议已经算复杂的了;其他设备,比如电子标签(dps),接触过的所有厂家的协议都轻松的破解了,因为协议特别简单,
否者要用他们自带的dll 这类东西,感觉有点不靠谱,总怀疑他们的开发包有漏洞;或者性能处理上有不优化的地方;
就跟厨师做菜一样,最好原味为主;健康安全;
其他一些小众设备的控制,比如led显示屏,简单监控了通讯内容,感觉也能破解,只是由于:& &&&1.显示屏厂家太多,不可能每个不同项目中用到的不同的led,都去破解底层协议;没那个精力;& &&&2.毕竟显示屏只是一个显示作用,不像plc的高速通讯那么重要;& &&&3. 还是要尊重一下厂家,什么都去破解,感觉什么都想撕破别人的衣服,有点不太道德; 但是plc太重要,受到opc这样的约束也是如鲠在喉;
欧姆龙pc大致模式的结果如下:
1.大致特点:
a.. socket方式; 需要ip和端口号;通过TCP模式通讯,2进制方式;
b. 有一个初始化的步骤,也就是socket刚刚连接上的时候,需要做个初始化的步骤;
3. 初始化正常后,可以进行db块的读写操作;
2.和三菱,西门子PLC的差别;
感觉上,相对西门子和三菱,协议相对稍微更简单一些,也更合理一点;
& && &体现在: 1. 解析从大到小,程序和阅读都方便一些(和西门子一致)
& && && && && && && & 2. 按字读写,效率更高(和三菱一致)
& && && && && && && & 3. 有握手,但只有一次,比西门子两次握手简单,也比三菱增加了安全机制;
& && && && && && && & 4. 不同型号协议基本一致,不像三菱老款的fx和q系列有两套协议,也不像西门子
& && && && &&&不同型号的槽号有区别;
& && && && && && && & 5. 好像只有16进制的通讯方式,没有ascii那种模式;和西门子一样,这样比较干净;不像三菱两种模式都支持,反而让上位机和电控之间每次沟通到底用那种模式而浪费时间;
& && && && && && && &6. 端口像三菱那样1对1,但是可以定义多个; 不像像西门子那样固定102端口,但是可以1对多; 这样对开发人员要求低一些; 端口1对多控制,如果程序写不好,容易出问题;
& && && &&&
3.初始化问答格式;
& && &a.连接成功后发送握手命令
& && && &在连接的情况下,握手命令只能发送一次,否则将返回异常帧
& && &b. 比如 电脑pc的ip是:192.168.1.254;& &plc的ip是:192.168.1.253
& & PC -&PLC(电脑发给plc初始化指令 20个字节):
&& 46&&49 4E 53 00 00 00 0C&&00 00 00 00 00 00 00 00
00 00 00 FE
& & PLC 回复:
& &46 49 4E 53 00 00 00 10
00 00 00 01 00 00 00 00&&00 00 00 FE&&00 00 00 FD
& & PC -&PLC(电脑发给plc初始化指令):
&& 46&&49 4E 53& &-- 头说明,翻译成ASCII就是FINS
& & 00 00 00 0C&&--&&整个报文长度0C(16进制)= 12;
& &00 00 00 00& & --&&初始化握手命令代码( 客户端-&服务端,也就是PC给PLC发送初始化命令) ;
& &00 00 00 00& & -- 错误代码
& &00 00 00 FE& & -- 上位机电脑IP号: FE(16进制)=254 表示电脑的ip:192.168.1.254 中最后的254;
& & PLC 回复:
& &46 49 4E 53
-- 头说明,翻译成ASCII就是FINS
&& 00 00 00 10& & --&&整个报文长度10(16进制)= 16;
& &00 00 00 01& &--&&初始化握手命令代码回复( 服务端-&客户端) ;
& &00 00 00 00&&-- 错误代码
& & 00 00 00 FE&&&&-- 上位机电脑IP号: FE(16进制)=254 表示电脑的ip:192.168.1.254 中最后的254;
& &00 00 00 FD & & -- PLC的IP号: FD(16进制)=253 表示电脑的ip:192.168.1.253 中最后的253
以上交互完成后,可以安心的做后续的读写交互了;
如果后续读写过程中,一问一答有问题,就把socket通讯断掉,重新做握手;
所以,我们在设计的时候,可以把握手这个操作做在Socket的onConetced 里面;
4.读操作:
& &&&比如PC读取:WR.10 开始的一个点( WR-数据类型, 10--启始地址&&)
& &&&PC -&PLC(电脑发给plc读取指令 34个字节) :
& &&& 46 49 4E 53 00 00 00 1A&&00 00 00 02 00 00 00 00
80 00 02 00 FD 00 00 FE
& && &00 FF 01 01 82 00 0A 00&&00 01
& && &&&PLC反馈:
& & 46 49 4E 53&&00 00 00 18&&00 00 00 02 00 00 00 00 C0 00 02 00 FD 00 00 FE& &
& & 00 FF&&01 01 &&0000& &4013& &
& & PC -&PLC(电脑发给plc读取指令):
&& 46&&49 4E 53& &-- 头说明,翻译成ASCII就是FINS
& & 00 00 00 1A&&--&&整个报文长度1A(16进制)= 26
& &00 00 00 02& & --&&功能码,发送命令
& &00 00 00 00& & -- 错误代码
& &80 00 02 00& & -- 80 表示 ICF;&&00表示RSV 02表示GCT, 00表示PLC网络号
& &FD 00 00 FE& &--&&FD--的ip最后部分,00--plc单元号 00--pc网络号 FE--PC的IP最后部分
&&00 FF 01 01&&& &-- 00--pc单元号 FF--SID&&01-- MRC命令 01--SRC命令(后面0101表示读)
&&82& && && && && && &&&--&&CIO-80,DM-82,WR-B1
&&00&&0A& && && &--&&启始地址
&&00& && && && && && &--如果有位,就是位的首地址
&&00 01& && && && && &
--& &读取长度
& && & PLC反馈:
& & 46 49 4E 53&& -- 头说明,翻译成ASCII就是FINS
&&00 00 00 18&&--&&整个报文长度18(16进制)= 24
& &00 00 00 02& &--&&--&&功能码,发送命令
00 00 00 00& &-- 错误代码
C0 00 02 00& & - C0对应上面80&&,表示回复的意思;
FD 00 00 FE&&-&&FD--的ip最后部分,00--plc单元号 00--pc网络号 FE--PC的IP最后部分
00 FF&&0101&& --不管它,固定的
0000& && && && &--(0000表示接受正常)
4013& && && && &--收到的一个字的数据;
5.写操作:==========================
& && & 比如PC写入:WR.10 =100
& &&&PC -&PLC(电脑发给plc写入指令) :
& &&& 46 49 4E 53 00 00 00 1C&&00 00 00 02 00 00 00 00&& 80 00 02 00&&FD 00 00 FE
& && &00 FF 01 02 82&&00&&0A& &00& &00 01 00 64
&&PLC反馈:
46 49 4E 53 00 00 00 1A&&00 00 00 02 00 00 00 00&& C0 00 02 00&&FD 00 00 FE
& && &00 FF 01 02
========================
& & PC -&PLC(电脑发给plc初始化指令):
&& 46&&49 4E 53& &-- 1. 头说明,翻译成ASCII就是FINS
& & 00 00 00 1C -- 2.& &1A表示读取,1C表示 写入 1C-1A=2个字节的数据;
& &00 00 00 02& & -- 3. 功能码,发送命令
& &00 00 00 00& & --4. 错误代码
& &80 00 02 00& & -- 5. 80 表示 ICF;&&00表示RSV 02表示GCT, 00表示PLC网络号
& &FD 00 00 FE& &-- 6. FD--的ip最后部分,00--plc单元号 00--pc网络号 FE--PC的IP最后部分
&&00 FF 01 02&&& &-- 7. 00--pc单元号 FF--SID&&01-- MRC命令 02--GCT命令(后面0102表示写)
&&82& && && && && && &&&--8.&&CIO-80,DM-82,WR-B1
&&00&&0A& && && &--&&9. 启始地址
&&00& && && && && && &--10. 如果有位,就是位的首地址
&&00 01& && && && && &
-- 11. 写入长度
&&00 64& && && && && &
--12.& &写入值;
========================
&&PLC反馈:
46 49 4E 53& &-- 头说明,翻译成ASCII就是FINS
& && & 00 00 00 16& &--长度
& & 00 00 00 02& & ----&&功能码,发送命令
& & 00 00 00 00&&& & -- 错误代码
& &C0 00 02 00& &--回复;
& & FD 00 00 FE&&--&&FD--的ip最后部分,00--plc单元号 00--pc网络号 FE--PC的IP最后部分
& && &00 FF 01 02 & &&&-- 00--pc单元号 FF--SID&&01-- MRC命令 02--GCT命令
& & 00 00& && && && && &--表示写入正常;
具体对应关系,请参见下表:
内存区域组点连接范围(十进制)格式注释CIOCIO0-6143WORDPLC与I/O单元的数据交换,分只读区和读写区,请参考设备手册W(工作区)WR0-511WORD工作区用作内部处理和存取数据,它可按位或字存取H(保持区)HR0-511WORD用于数据存储与操作,掉电或停止时,可以保持数据不变A(辅助区)AR(R)0-477WORD辅助区的位被系统预置了标志位和控制位,用于监控操作
AR(Read)只读区,字偏移地址对应实际地址A0;
AR(Read/Write)读写区,字偏移地址0对应实际的488地址AR(R/W)488-959WORDD(数据存储区)DM0-32767WORD只能以字为单位存取的多用途数据区,不能用位操作C(计数器当前值)C(PV)0-4095WORD计数器过程值,可作为普通字读取T(定时器当前值)T(PV)0-4095WORD定时器过程值,可作为普通字读取IR(变址寄存器)IR(PV)0-15WORD用于间接寻址一个字(不支持,如需,请联系客服)DR(数据寄存器)DR(PV)0-15WORD间接寻址中用来偏移变址寄存器中的PLC存储地址
(不支持,如需,请联系客服)TK(任务标志)TK(FlagBIT)0-31WORD读取任务标识TK_FlagStatus0-31WORD读取任务状态T(定时器当前状态)T_STATUS0-4095WORD定时器当前状态C(计数器当前状态)C_STATUS0-4095WORD计数器当前状态E0 - EF(扩展数据存储区)E0 - E150-32767WORDEM区域存储容量取决于使用CPU的型号EMEM(Current)0-32767WORDEM当前过程值
itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号:10 广播电视节目制作经营许可证:编号(京)字第1149号温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(1490)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_084068',
blogTitle:'引用 欧姆龙PLC
HostLink协议在组态王中的寻址',
blogAbstract:'&\r\n引用\r\n
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}PLC是欧姆龙的,但是在寄存器选项中不知道都是代表什么意思。【组态王吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:3,084贴子:
PLC是欧姆龙的,但是在寄存器选项中不知道都是代表什么意思。
上图是欧姆龙PLC,在寄存器一项中他们分别代表什么意义?请各位大神帮助!!!
上海库软科技C.S手机组态:自动生成APP,简单高效;内置虚拟IP技术支持互联网穿透;支持3D,支持地图动态标记,支持万能协议和短信邮件APP报警.技术咨询
弄明白了没?没明白加我Q
欧姆龙PLC CP1系列内存分了12区,A、H、W、D、T、C、TK、IR、DR,CIO等,选择寄存器的要选择具体的地址,比如要用CP1H的第一个输入模块的第一个通道,寄存器就选CIO0.00
贴吧热议榜
使用签名档&&
保存至快速回贴

我要回帖

更多关于 欧姆龙plc存储区地址 的文章

 

随机推荐