欧姆龙CP1E232通讯

  • 欧姆龙CP1E-N系列:
  • 写作原因:
  • 最主要的意想不到
    • 很奇葩的设计
    • 错误代码说明
    • 串口硬件说明
  • 软件的注意点
    • 补充说明:
  • 总结:

欧姆龙CP1E-N系列:

写作原因:

欧姆龙PLC很少接触,最近有项目用到欧姆龙PLC而且需要用到485通讯,项目很小代码量不大,本想着很快就可以搞定,可没想到遇到各种坑。
以至最后比预期的时间成倍的增长,而原因是大量的时间都浪费在了想当然和没想到上,所以写这篇文章也是给用到的朋友们节省时间。

最主要的意想不到

此次项目需要485通讯,而拿到的PLC只有232口(很无奈但这也是小企业经常遇到的问题),这倒不是问题,加一个转换模块就可以解决(后面却是耗费时间最长而其实最简单的问题)。

很奇葩的设计

按最初的想法,找来了转换模块,编写了最简单的程序,先试验一下通讯功能。(这里吐槽一下下,官网上居然没找到PLC编程软件,又是各种下载各种不合适之后终于找到可以用的软件)盼望的奇迹果然没出现,很轻松的失败了,但也没放心上,看了编程指导和样本的介绍。然后就是各种改程序,指导手册写的也不是很用心。

按照手册里说明,串口定义很自然的选了1,并且看到手册里的例程有串口发送准备好的状态标志位A392.05

在试验时发现A392.05标志位始终都无法接通,而且串口始终都无任何输出。抱着试验的心态将控制字的串口定义改为了2,奇迹般的发现A392.05可以通了,并且奇怪的是当编程口的USB线拔掉的时候,串口居然能收到数据了(用的串口助手在电脑上查看数据),虽然收到的全是FF或BF等乱码。
于是考虑是否波特率,启停位等设置或程序编写有问题,于是开始了在错误的道路上一通狂奔。当一次次被虐之后,基本就要放弃了。无意中在官网上点击了在线咨询,没想到回复很快(这里要表扬一下)。客服肯定的告知:这个型号只能选1,并且客服发了一份说明,告知可以监视串口传送的错误代码寄存器。

错误代码说明

A528.00-07 內置的RS-232C 埠出錯標誌
這些標誌指示內置的RS-232C埠發生的錯誤類型。
·在內置的RS-232C埠重啟時自動置OFF,重啟旗標為A526.00。
·在NT 連結模式下僅位元5( 逾時錯誤)有效。
·串列PLC 連結主站單元:
位05:發生逾時錯誤時置ON。
串列PLC 連結從站:
位03:發生成幀錯誤時置ON。
位04:發生超限錯誤時置ON。
位05:發生逾時錯誤時置ON。
這些位可由CX-Programmer 來清除。
設定:
位00和01:不使用
位02:發生校驗錯誤時置ON
位元03:發生成幀錯誤時置ON
位元04:發生超限錯誤時置ON
位元05:發生逾時錯誤時置ON
位06和07:不使用

当我打开监视时,惊奇的发现没有任何错误
随后又是一通被虐,最后实在没办法又找了客服同志,大致说明了一下情况,客服也没办法了。无意中提到为什么收数据时需要拔掉编程线,而且都是乱码,客服灵感爆发的告诉我,端口的4脚和5脚需要短接,然后又发了我一份说明

串口硬件说明


这里面居然红色字标明4和5脚要短接,可5脚是地,这是什么神仙操作?再仔细看,发现了令人发指的更改,9脚为地。这让我怎么能猜的出?
赶紧对串口进行更改,这回终于接收到了正常的数据。于是心中…
用标准的串口,然后不按标准的引脚,网站里下载的手册里还不提示。
Oh MG…

软件的注意点

PLC的寄存器D是字寄存器也就是16位的,包含两个字节,串口发送是按字发送,发送命令里要设置的发送数量也是按照字节算,所以每个D寄存器应该算2个字节的发送量
例:
起始地址D100,发送数量3
发送顺序是这样的:
D100高字节
D100低字节
D101高字节
所以存放是需要用移位等命令将字节组合一下。
接收也是一样的道理,解析接收数据时,需要拆分寄存器

补充说明:

软件里的设置项里需要设置波特率,发送格式和协议:

自定协议需要将模式设定为RS-232C格式(只有这个格式可以用TXD和RXD命令),MODBUS-RTU是靠写寄存器来实现传送的,(这是从手册里看到的,并没有试验,不知道是否还有什么惊喜)

总结:

232口虽然用的标准9针串口,但引脚定义是特殊的,需要注意地脚,4脚和5脚要短接,软件里的控制字,如用232口:写入1 ,用485口:写入2
每个D寄存器的存储字节数是2个,发送之前要将字节组合

欧姆龙CP1E通讯详解相关推荐

  1. delphi 串口通信发送_STM32第五章串口通讯详解

    点击上方"果果小师弟",选择"置顶/星标公众号"干货福利,第一时间送达! 串口通信是串行通信里面的异步方式.串行通信是相对于并行通信来说的.串口是一个事实存在的 ...

  2. STM32—串口通讯详解

    串口通讯目录 物理层 协议层 USART简介 开发板与上位机的连接 代码讲解: 一.初始化结构体 二.NVIC配置中断优先级 三.USART配置函数讲解 四.传输数据的函数: 1.发送一个字节 2.发 ...

  3. STM32_USART 串口通讯详解

    对51单片机有了解的都知道51单片机的串口通讯工作原理,我们单片机使用的电平TTL电平,为了使我们的的单片机与PC进行通信,就需要一个电平转换芯片,把TTL电平转换为USB电平(使用的USB接口,如果 ...

  4. Linux 进程间通讯详解一

    进程间的通讯 两台主机间的进程通讯 --socket一台主机间的进程通讯 --管道(匿名管道,有名管道) --System V进程间通信(IPC)包括System V消息队列,System V信号量, ...

  5. tcp通讯 怎么进行安全认证_西门子PLC在博图环境下进行TCP通讯详解

    对于做工控设备的人员来说,精通各种通讯协议的使用是必不可少的,通讯协议就像语言一样,只有双方都约定好了协议之后,我才能知道你想做什么以及你需要什么,反之同理.这几天做了一个项目,是博图环境下使用西门子 ...

  6. 计算机同S7-300PLC通讯,S7-300PLC主站之间的PROFIBUS-DP通讯详解

    S7-300与S7-300之间使用PROFIBUS-DP进行主主通讯 因为两个S7-300PLC都是主站,而每个主站上都有属于自己的DP网络,如果我们把两个DP网络接到一起是无法通讯的,因为一个网络中 ...

  7. MODBUS通讯详解(博客园)

    MODBUS是一个工业上通信常用的通讯协议,一般在PLC上面用的比较多,主要是定义了一种数据传输的规范,比如数据发给谁,数据是干嘛的,数据错没错,接收到数据的从机告诉我数据有没有接受到等. 传输的方式 ...

  8. 康耐视InSight相机实现ModBusTCP通讯详解

    1. 实验准备: 智能相机:本次实验使用的相机型号为:IS8200M,支持目前最新的InSight6.13版本固件,所以相机的固件也升级到了最新的6.01.03,这里建议固件版本最好使用最新的.注意, ...

  9. android项目监听蓝牙连接,android 蓝牙ACL通讯详解

    本文主要是讲述android中蓝牙ACL链接的详细介绍,这里只讲述ACL,不讨论BLE,SCO,等等其他通讯通道,后面如果我有兴趣研究,我会贴上对应的文章链接 github下载地址 同时也是一个可直接 ...

最新文章

  1. java的默认_java默认包的使用
  2. c语言手机通讯录退出程序,通讯录小程序(C/C++)C语言练习小程序
  3. 启动过滤器异常 java.lang.AbstractMethodError: ‘void javax.servlet.Filter.init(javax.servlet.FilterConfig)‘
  4. 提取图片纹理_Fundamentals Of Computer Graphics 第十一章 纹理映射(中)
  5. iphone开发之私有库private frameworks
  6. vue中路径的配置使用
  7. 日语学习-多邻国-关卡1-学校
  8. 为什么python的命名不能以数字开头_python变量不能以数字打头
  9. python数据可视化代码_Python实现简单的数据可视化
  10. 「人物特写」国产手机操作系统突围任重而道远,创新才是关键
  11. PHP set_error_handler() 函数
  12. Java全套视频教程
  13. 基金登记过户系统相关
  14. c++rs法计算hurst指数_计算机组成原理与接口技术
  15. 电子书PDF网站大全
  16. 安卓retroarch运行mame核心玩街机游戏(快速上手畅玩篇)(运行游戏时黑屏、停止运行或者闪退的某个解决办法)
  17. STM32FXXX J-link下载程序说明
  18. 28岁从事功能测试6年被辞,面试2个月还没到工作···
  19. Java经典面试:源码解读及如何保证线程安全
  20. 公司电脑监控软件究竟有何作用?

热门文章

  1. 天津计算机比赛,我院在华北五省(市、自治区)大学生计算机应用大赛、机器人大赛天津赛区比赛中取得佳绩...
  2. (plt绘图)自定义热图渐变色,自定义colorbar
  3. 加速器:Expect脚本
  4. Densely Connected Convolutional Networks翻译总结
  5. 简单说一说我实习的事
  6. Project Structure
  7. Cnskype for business协同办公软件对企业的意义
  8. kangle安装php7.0_kangle安装fileinfo扩展完善版(PHP7.3.7)
  9. could not resolve package...
  10. 深入理解JVM之Java内存区域与内存溢出异常