台达(Delta)PLC的PLC-LINK实现

在这里插入图片描述在这里插入图片描述

关于机种的限制

早期台达PLC支持PLC-LINK功能的机型仅限于几种,如EH、SA、SX等,像SS、ES、EX等机型是不支持的,后来推出的SS2、ES2、EX2等均增加此功能。这里说的支持与否,说的是主站功能。作为从站,限制则表现在支持的功能码多少。而老型号的16笔/16台及100笔/32台限制,新机型变成50笔/16台及100笔/32台限制。
在这里插入图片描述在这里插入图片描述

通讯速率及设定说明

全系列DVP 机种之通讯格式由D1120(COM2)/ D1109(COM3)设定,其中EH3 主机COM3 通讯口(使用DVP-F485 卡),支持通讯速率最高为500Kbps,其通讯格式设定不支持(b8~b15);DVP 各机种RS-485支持之通讯速率及通讯格式设定请参考下表:
在这里插入图片描述

特D和特M说明:

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
简要归纳如下:

M1350=ON,启动PLC LINK 功能,之后就不再做联机侦测。

M1351=ON,自动模式,主站自动对从站作读出与写入的动作,直到 M1350 或 M1351= Off 才停止PLC LINK 动作。

M1352=ON,手动模式,设定PLC-LINK 轮询次数(D1431)。

M1353=ON,启动32 台LINK 功能及超过16 笔读写功能。

M1354=ON,启动在一个轮询时间同时执行读写。

M1355=ON,手动设定从站联机功能, 当M1355 为Off, 自动检测从站联机功能。手动联机,M1360~M1375(M1440~M1455)为指定要联机的标志;Off时,进行从站联机侦测,M1360~M1375(M1440~M1455)为联机存在标志。

M1356=ON,PLC LINK功能开启时,用户可根据D1900~D1931的内容当作从站站号,不再使用D1399 预设的连续站号。注意SS2不支持,似乎也只有SS2不支持。

M1360-M1375,PLC LINK 从站ID#1-16 状态,见M1355说明。

D1355-D1370,要读取寄存器的PLC存储地址,默认值H1064,即D100。

D1415-D1430,要写入寄存器的PLC存储地址,默认值H10C8,即D200。

D1399,指定从站起始站号,连续。

D1900-D1931,当M1356 为On 时,此特D 将会被定义为PLC-Link 的站号设定,不再使用D1399 预设的连续站号;停电保持功能需要M1356 为On。

D1120,COM2(RS485)通讯协议。

D1121,PLC通讯站号。

D1129,通讯逾时定义(单位是ms)。

PLC LINK 实验

本例中,主站使用SS2,与2台从站通过PLC的COM2(RS-485)连网。3台PLC的X0-X7状态按照1字节组合,保存至本机D100。主站除读取本机D100之外,还读取2台从站的D100,保存在D1480和D1512,之后由程序转存至D101和D102。

在这里插入图片描述

M1355=ON,M1360-1361=ON,指定联机2台,主站读取从站的寄存器D100。从站站号起始值D1399=K7,读取长度D1434-1435=1,写长度D1450-1451=0,仅联机2台从机且只发送2条读命令,通讯效率高。如果不做此设定,主站将默认轮询16台,并发送16条读命令和16条写命令。这一点可以连接至RS-485线路上使用电脑串口软件监控到。

在主站PLC内写入下列程序:
在这里插入图片描述

从站1的PLC内写入下列程序:
在这里插入图片描述
从站2的PLC内程序仅作1处修改,即站号(D1121)赋值为K8。

外部接线,Master X5=ON,Slave#1 X3=ON。PLC切换至RUN状态,在WPLSoft内监控主站D100-D102:
在这里插入图片描述
则D100=H0020,D101=H0008,D102=H0000。至此,PLC LINK 已经正确实现。
在这里插入图片描述

附录:上位机读取寄存器示例

连接主站PLC串口1到电脑串口,在串口调试软件中,设置通讯口和其它参数,向PLC发送如下ASCII字符串:

:01031064000385+回车+换行

:起始符

01是主站PLC站号

03是读命令

1064是D100寄存器的存储地址

0003是读取字数(注意不是字节数!)

85是校验码(累加和,取反加1)

回车+换行 是16进制的 0D 0A。

PLC应答:

:010306002000080000CE+回车+换行

前面5字符跟发送相同。

06返回字节数(注意不是字数!)

0020第一个寄存器(这里是D100)返回值,16进制格式

0008第二个寄存器(这里是D101)返回值

0000第三个寄存器(这里是D102)返回值

CE是校验码(累加和,取反加1)

见下图:
在这里插入图片描述

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
对不起,我无法提供实际的代码示例。然而,我可以向你解释如何使用台达PLC与Modbus-RTU进行通信,并给出一些基本的概念。 首先,确保你已经连接好了Modbus-RTU通信模块,并且了解PLC的通信参数(例如串口设置、波特率、数据位、停止位等)。 下面是一个简单的伪代码示例,展示了如何使用Modbus-RTU协议与台达PLC进行通信: ```python import minimalmodbus # 创建Modbus instrument对象 instrument = minimalmodbus.Instrument('/dev/ttyUSB0', 1) # 请根据实际情况修改串口名称和从站地址 # 配置通信参数 instrument.serial.baudrate = 9600 instrument.serial.bytesize = 8 instrument.serial.parity = minimalmodbus.serial.PARITY_NONE instrument.serial.stopbits = 1 # 读取保持寄存器的值 register_address = 0x0000 # 请根据实际情况修改寄存器地址 num_registers = 1 # 请根据实际情况修改读取的寄存器数量 value = instrument.read_registers(register_address, num_registers) # 写入保持寄存器的值 register_address = 0x0000 # 请根据实际情况修改寄存器地址 value_to_write = 1234 # 请根据实际情况修改要写入的值 instrument.write_register(register_address, value_to_write) ``` 请注意,这只是一个伪代码示例,你需要根据实际情况修改串口名称、从站地址、寄存器地址、通信参数和要读写的值。 在实际应用中,你需要根据你的PLC型号和Modbus-RTU通信模块的规格,使用相应的库或软件来进行通信。台达PLC通常有自己的通信库,你可以查找相关的文档和示例代码以获得更准确的信息。 希望这些信息能对你有所帮助!如果你有更多问题,请随时提问。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值