台达PLC开发笔记(二):台达PLC设置主机通讯参数为RTU并成功通讯

简介: 台达PLC开发笔记(二):台达PLC设置主机通讯参数为RTU并成功通讯

前言

  前面使用485和网口与台达成功建立通讯,但是485是使用用的ASICC模式,多数情况下是使用RTU模式提升通讯效率。


下载安装台达ISPSoft软件

  官网下载地址:https://downloadcenter.delta-china.com.cn/DownloadCenter?v=1&q=ISP&sort_expr=cdate&sort_dir=DESC

  配置需要通过网线,使用HWCONFIG软件进行配置:

  

  (先安装前面的commgr通讯管理软件)

  下载后,如下图:

  

  安装后,如下图:

  


配置之前测试

使用485测试ASCII通讯方式

  

使用485测试RTU通讯方式


  (端口默认是ASCII方式,RTU方式会返回一个固定长度固定的数据,应该是错误检测)

使用ISPSoft软件配置台达PLC的485由ASCII转为RTU

步骤一:打开软件

  

步骤二:创建工程

  

  

步骤三:打开网络配置HWCONFIG

  

  

步骤四:配置COM1口等参数(ASCII改为RTU)

  

  (若没有之前使用网线连接,会出现提示,之前是需要先网线连接到PLC的)

  

  正在下载,提示处理中,如下图:

  

  下载超时,是需要使用网口连接的。

步骤五:使用网线方式连接PLC

  

  

  

步骤六:再次下载新的配置(原先为485现在为网线IP)

  

  

  

  

步骤七:下载成功,使用485RTU进行测试

  (为hex了,不是acsii了,成功)

  


入坑

入坑一:使用Qt的modbus485读取失败

问题

  Qt的modbus全方面测试读取M、D、Y、X对应的寄存器附近几个值都为0。

解决

  直接使用modbus rtu测试

  是没有问题的,但是Qt返回值依然是:

  其他部分在此尝试过了,总共四种类型,相关的M、D、X、Y变量都设置过类似的,全部读取成功,但是值都为0与实际不符,好像架空了一样。

论证(2021年04月25日补充)

  测试单个线圈,使用libmodbus可以读出来

  

  测试单个线圈,使用QModbus还是无法读出

  

  测试读取寄存器,使用libmodbus可以读出

  

  测试读取寄存器,使用QModbus可以读出

  

结论

  Qt有些东西确实鸡肋,没必要死磕。



相关文章
|
测试技术
西门子S7-200 SMART自由口通信,如何编写发送程序,使用超级终端发送测试
今天我们学习编写西门子S7-200 SMART自由口通信的发送程序,并使用超级终端进行发送功能测试。首先设置参数,打开STEP7 Micro/WIN SMART编程软件,右键单击项目树中的CPU,选择打开,在打开的系统块中选择CPU类型和信号板类型。设置信号板,串口的类型为RS232,地址为2,波特率为9600。
西门子S7-200 SMART自由口通信,如何编写发送程序,使用超级终端发送测试
|
18天前
|
监控 网络协议 安全
Verilog代码在上网行为管理软件中的网络设备控制与协议分析
**Verilog摘要:** Verilog是硬件描述语言,用于数字电路设计和网络设备控制。它在上网行为管理软件中用于控制路由器、交换机等,例如通过简单模块控制端口状态。此外,Verilog还支持协议分析,如解析以太网帧提取MAC地址。监控数据可结合Verilog实现自动化提交,例如通过HTTP发送请求到服务器,实现实时监控和响应。这些示例展示了Verilog在网络安全和性能优化中的应用潜力。
76 1
|
2月前
|
Java
java实现上位机与西门子PLC的通讯设置
这段代码创建了一个ZCAN_Transmit_Data数组,初始化并设置了数组中的第一个元素,包括写入数据、传输类型为1。然后,创建了一个ZCAN_CAN_FRAME对象,指定了CAN_ID和数据长度为8,并将十六进制字符串转换为字节数组填充到数据字段。将这个帧赋值给ZCAN_Transmit_Data对象。最后通过ZLGCAN接口发送数据,如果返回值不等于1,则抛出异常,否则返回发送结果。
|
2月前
|
JavaScript C#
【傻瓜级JS-DLL-WINCC-PLC交互】7.​C#直连PLC并读取PLC数据
【傻瓜级JS-DLL-WINCC-PLC交互】7.​C#直连PLC并读取PLC数据
146 0
|
存储 测试技术
西门子S7-200 SMART自由口通信,如何编写接收程序
本篇我们来学习编写西门子S7-200 SMART自由口通信的接收程序。我们继续使用上篇文中STEP7 Micro/WIN SMART编程软件所创建的项目,删除已经编写的发送程序,再来编写接收程序,拖动常开触点到程序段1中,输入地址SM0.1,通过传送指令,将常数十六进制数09送到SMB130。
西门子S7-200 SMART自由口通信,如何编写接收程序
|
存储 索引
西门子S7-200 SMART USS通信,变频器通信程序如何编写?
今天我们继续来学习西门子S7-200 SMART USS通信,本篇我们来介绍如何编写与变频器通信的程序。打开STEP7 Micro/WIN SMART编程软件,双击项目树下的系统块设置,RS485端口地址设置为2,波特率设置为9.6kbps。
西门子S7-200 SMART USS通信,变频器通信程序如何编写?
|
网络协议 C语言 Perl
西门子S7-200 SMART硬件设备如何组态?通信如何组态,通信参数如何设置?
本篇我们来讲一下西门子S7-200 SMART硬件设备如何组态以及通信参数如何设置。
西门子S7-200 SMART硬件设备如何组态?通信如何组态,通信参数如何设置?
|
存储 索引
西门子S7-200SMART与变频器的通信如何设置?USS通信协议如何组态?
今天我们来介绍西门子S7-200SMART与变频器的通信如何设置,USS通信协议如何组态,下面先介绍一下变频器参数设置。
西门子S7-200SMART与变频器的通信如何设置?USS通信协议如何组态?
|
存储 索引
西门子S7-200 SMART USS通信,编写与变频器通信程序
今天我们继续来学习西门子S7-200 SMART USS通信,本篇我们来介绍如何编写与变频器通信的程序。
西门子S7-200 SMART USS通信,编写与变频器通信程序
|
存储 人工智能
西门子S7-200 SMART Modbus RTU通信,如何编写从站程序
上篇文章中我们通过一个例子学习了西门子S7-200 SMART中断程序的编写,本篇我们开始学习S7-200 SMART的Modbus RTU通信。通过集成RS485端口或可选通信板SM CM01的RS485/RS232端口,S7-200 SMART可以作为Modbus RTU主站或者从站同多个设备进行通信。
西门子S7-200 SMART Modbus RTU通信,如何编写从站程序

热门文章

最新文章

  • 1
    流量控制系统,用正则表达式提取汉字
    25
  • 2
    Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
    26
  • 3
    Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
    25
  • 4
    Redis07命令-String类型字符串,不管是哪种格式,底层都是字节数组形式存储的,最大空间不超过512m,SET添加,MSET批量添加,INCRBY age 2可以,MSET,INCRSETEX
    27
  • 5
    S外部函数可以访问函数内部的变量的闭包-闭包最简单的用不了,闭包是内层函数+外层函数的变量,简称为函数套函数,外部函数可以访问函数内部的变量,存在函数套函数
    23
  • 6
    Redis06-Redis常用的命令,模糊的搜索查询往往会对服务器产生很大的压力,MSET k1 v1 k2 v2 k3 v3 添加,DEL是删除的意思,EXISTS age 可以用来查询是否有存在1
    30
  • 7
    Redis05数据结构介绍,数据结构介绍,官方网站中看到
    21
  • 8
    JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
    19
  • 9
    JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
    19
  • 10
    定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
    19