网址分享:

  1. 汇川官方论坛,有问题可以来这里提问:http://bbs.inovance.com/forum.php?gid=36
  2. 汇川官网视频教程,很详细:http://www.inovance.cn/support/share_issue.html
  3. 汇川官方资料下载地址:http://www.inovance.cn/support/download.html
  4. 推荐汇川相关博客,内容很丰富:http://www.yanjuntech.cn/archives/category/工控技术/plc应用/中型plc
  5. 本文程序源码以及汇川PLC编程资料下载地址:https://download.csdn.net/download/u012293114/12077053

Modbus TCP通讯案例分享:

AM600系列和AC800系列通讯程序一样,下面以AC801与C++上位机通讯为例,有如下几点注意事项:

1、C++上位机

官方提供的Modbus TCP Api是以H3U系列PLC通讯为例的,里面代码只需要做一点点调整,将H3U的函数以及常量名替换为AM600的,分别为
REGI_H3U_DW→ELEM_MW,
H3u_Write_Soft_Elem→Am600_Write_Soft_Elem,
如下:

//代码示例1:把100写入MW0中
//SoftElemType eType = REGI_H3U_DW;//寄存器类型SoftElemType eType = ELEM_MW;//寄存器类型int nStartAddr = 0;//寄存器地址int nCount =1;//寄存器个数BYTE pValue[8];//缓冲区int nNetId = 0;//连接idunsigned short nValue = 100;//把要写的数据存入缓冲区,备写memcpy(pValue,&nValue,sizeof(nValue));//调用api写数据//int nRet = H3u_Write_Soft_Elem(eType,nStartAddr,nCount, pValue,nNetId );int nRet = Am600_Write_Soft_Elem(eType, nStartAddr, nCount, pValue, nNetId);if (nRet){AfxMessageBox(_T("写寄存器成功"));} else{AfxMessageBox(_T("写寄存器失败"));}

AM600系列只有三个缓存区,详细说明见另一篇文章:
汇川PLC AM600、AC800系统变量内存及变量寄存器地址分配

只有Q区和M区可以在C++上位机端访问:

//AM600ELEM_QX = 0,     //QX元件ELEM_MW = 1,     //MW元件ELEM_X = 2,   //X元件(对应QX200~QX300)ELEM_Y = 3,   //Y元件(对应QX300~QX400)

2、PLC下位机

PLC端只需要给目标关联变量分配到C++上位机访问的寄存器地址,即可实现PLC变量与上位机程序的关联,代码如下:

PROGRAM PLC_PRG
VARtemp2 AT %MW0 : INT := INT#0;
END_VAR

其中, MW0 就是C++程序中 nStartAddr = 0 所访问的地址,同样,可以一起改为 MW99nStartAddr = 99,只要对应即可。

MW0、MB0、MX0.0以及QX0.0、QB0、QW0所占位数见另一篇文章:
汇川PLC AM600、AC800系统变量内存及变量寄存器地址分配

3、掉电保持区修改

AC801默认M区全部为掉电保持区,如果程序编译出现如下图所示错误:
解决办法:

汇川PLC AM600、AC800系列Modbus TCP通讯案例(PLC和C++源码)相关推荐

  1. 两台codesys设备之间通过modbus TCP通讯案例

    目录 关于modbus TCP server端的设置如下 关于modbus TCP clietn端的设置如下 本案例中N1小白盒codesys作为modbus TCP server端,PC的codes ...

  2. 汇川AM系列 Modbus TCP通信设置

    一 .概述 单击网络组态中的PLC设备,会显示PLC内部所支持的主/从站的使能窗口,如下图所示,单击窗口中的复选框按钮来使能CPU所支持的主/从站功能,再从视图右侧的"网络设备列表" ...

  3. winpcapp配置c++网口通讯_(经验)西门子PLC的Modbus TCP通讯的一些经验

    Modbus是一种协议公开的工业通讯,被广泛使用.通过串口的是Modbus-RTU协议,通过以太网的是Modbus TCP通讯.现在的PLC都开始支持以太网通讯,因此,Modbus TCP也越来越重要 ...

  4. 三菱PLC FX5U与FX5U 直间modbus tcp 通讯

    三菱PLC FX5U与FX5U 直间modbus tcp 通讯 (与此程序经过设备多次使用,硬件一样可以直接用 id=644700625705&

  5. Labview 和信捷 XDH PLC Modbus tcp通讯

    本文描述Labview 和信捷 XDH PLC Modbus tcp通讯,实际测试. 以XDH-60T4-E为实验. 1.地址 1.1默认IP地址:192.168.6.6,端口号:502 1.2点位地 ...

  6. 动物电子耳标阅读器|识读器|读卡器L8600系列Modbus RTU通讯协议与二次开发说明

    动物电子耳标阅读器|识读器|读卡器L8600系列Modbus RTU通讯协议与二次开发说明适用于L8600-S-02.L8600-R-02,更多MODBUS TCP协议资料欢迎交流! 出厂默认配置: ...

  7. 基于STM32和W5500的Modbus TCP通讯

     在最近的一个项目中需要实现Modbus TCP通讯,而选用的硬件平台则是STM32F103和W5500,软件平台则选用IAR EWAR6.4来实现. 1.移植前的准备工作 为了实现Modbus ...

  8. 台达PLC与台达VFD变频器modbus 通讯案例 完成PLC与变频器的modbus RTU通讯,实现触摸屏上控制变频器启停,设置频率

    台达PLC与台达VFD变频器modbus 通讯案例 配件:台达DVP 14es的PLC,台达VFD M变频器. 昆仑通态触摸屏和威纶通触摸屏 功能:完成PLC与变频器的modbus RTU通讯,实现触 ...

  9. Labview通讯三菱Q PLC,Labvew TCP通讯三菱PLC ,MCTCP,三菱PLC连接LabVIEW,LabVIEW和三菱PLC 通讯

    Labview通讯三菱Q PLC,Labvew TCP通讯三菱PLC ,MCTCP,三菱PLC连接LabVIEW,LabVIEW和三菱PLC 通讯 三菱官方MC协议,简单方便,完胜OPC协议. ,源码 ...

  10. Labview通讯三菱Q PLC,Labvew TCP通讯三菱PLC ,MCTCP,三菱PLC连接LabVIEW

    Labview通讯三菱Q PLC,Labvew TCP通讯三菱PLC ,MCTCP,三菱PLC连接LabVIEW,LabVIEW和三菱PLC 通讯 三菱官方MC协议,简单方便,完胜OPC协议. ,源码 ...

最新文章

  1. 重磅!CSDN 发布「AI开源贡献奖Top5」「AI新锐公司奖Top10」「AI优秀案例奖Top30」三大榜单...
  2. sudo 密码超时时间
  3. HTML5新增了哪些标签
  4. A.DongDong破密码
  5. 05-ServletconfigServletCOntext
  6. [转] STL中map用法详解
  7. 教你用一条SQL搞定跨数据库查询难题
  8. 信息学奥赛C++语言:派送蛋糕
  9. 华为手机明年全面升级鸿蒙OS:其实两年前就能用
  10. 若依如何修改数据监控登录账户密码?
  11. 尼康日本拟裁员约一千人 涉及半导体制造业务
  12. python中的缩进是长度统一吗_python缩进长度是否统一
  13. Linux RT(1)-硬实时Linux(RT-Preempt Patch)在PC上的编译、使用和测试
  14. E-prime debug
  15. latex毕业论文模板(附源码)
  16. freebsd协议栈学习
  17. 提问|Feed流设计是否应该展示「评论」?
  18. \t\t盐城范围内野外钓鱼好去处(不是塘钓哟)
  19. 什么是深度学习?我们为何需要深度学习?
  20. rm -rfi 防止误删除数据

热门文章

  1. H5调用微信扫一扫识别二维码
  2. win10+opencv+VS2015安装教程
  3. Matlab入门:界面认识
  4. SQL太难学不会?教你如何零基础快速入门
  5. TAOCP_2.3.1_遍历二叉树
  6. oracle dbv验证,【案例】Oracle数据库verify验证块报错4 dbv报错代码:6101解决办法...
  7. “怎样解题”-第二部分:怎样题解——作者:波利亚
  8. Android进阶知识(五):IPC基本概念之Binder、Binder工作机制及其原理
  9. 万人规模互联网公司的企业IT基础架构概览
  10. java接收前端参数