信捷PLC 通讯

  • 格式:doc
  • 大小:560.50 KB
  • 文档页数:9

信捷PLC在与其它设备通讯的时候,如果作为下位机,则尚未机必须按照MODBUS RTU的数据格式与其进行数据交换;如果信捷PLC作为上位机,当下位机也支持MODBUS RTU协议的时候,可直接使用相关通讯指令进行通讯,使程序编写更简单,效率更高,如果下位机不直接支持MODBUS RTU协议,则可使用自由格式通讯,下面为大家讲解相关使用:

1. 什么是MODBUS RTU协议?

请阅读 《Modbus协议中文版.pdf 》,通过这个介绍你会对MODBUS 协议有所了解,其中还详细介绍了modbus 通讯的另一种模式—— MODBUS ASCII 模式,关于两者之间的区别,在此不再重复阐述,《Modbus协议中文版.pdf 》上都有介绍,使用中请区分RTU 和 ASCII 模式,不能笼统的认为使用的协议时MODBUS 协议。

2. MODBUS RTU 的数据格式:

举例与1号站通讯:

主机发送的数据(通过串口调试工具监控,在调试串口通讯的时候,建议使用串口调试工具,这样可以直接看发送接收的数据内容,信捷推荐T-COM 点击下载):

这是监控到的数据,由于PLC没有连接下位机,所以系统自动重拨,共三次如

果通讯任然失败,则视本次通讯完成。下面对数据进行讲解:

01(下位机站号) 0F(modbus多个线圈写功能码) 00 01(下位机目标地址) 00 03 (线圈个数) 01(字节数) 01(数据内容M0为1其余为0组成的字大小为1) 73(CRC校验高位) 57(CRC校验低位)

下面用写9个线圈作对比:(其中M8为ON 其余OFF)

下面是T-COM监控数据:

01(下位机站号) 0F(modbus多个线圈写功能码) 00 01(下位机目标地址) 00 09 (线圈个数) 02(字节数) 00(数据内容低位)

01(数据内容高位) 25(CRC校验高位) 6D(CRC校验低位)

写三个线圈

写九个线圈

比较两组数据不难发现:线圈个数导致字节数、数据内容不同,一个字节是8

位,写九个线圈的时候占用两个字节,同时写的数据内容也超过8位因此要占用

两个寄存器来存放数据内容。

下面是常用modbus 功能码及其功能,

3.参数设置说明:

在调试通讯程序之前,必须对硬件连接和通讯数进行检查,在确保这些都完善

的情况下再继续工作。

信捷PLC支持的总线有:RS232 RS485,以下结合PLC操作面板给大家说下:

14点机型:

Port1 支持 RS——232 请勿修改此端口参数,修改将导致PLC与电脑连接不上

此处AB 属于 port 2 在使用时候需将此端口参数设置成和通讯设备相同

参数设置:

打开XCPPro 编程软件,连接PLC,点击“PLC设置”------“PLC串口设置” 出现以下窗口:

在这里修改参数,修改完成后写入PLC,然后重新给PLC上电。 左边PORT1 支持RS232

参数修改会导致脱机 右边port 2 支持RS232和RS485 但注意不能同时使用 485接口在输出端 A和B端子

自由格式通讯:

所谓自由格式,就是当下位机通讯协议与PLC协议不匹配时候,PLC内部自定义数据格式来发送数据,这样可以和很多下位机进行通讯,下面介绍下信捷PLC自由格式通讯,相关使用方法:

1. 硬件连接 RS232/RS485

2. 参数设置:自由通讯参数设置方法与上面讲的一样,只需将通

讯模式改成自由格式,其余参数方法相同

上图为自由格式通讯多出来的部分,当数据格式确定,如果每帧数据都有起始符和终止符的话,则可以直接在这里设置,程序里就无需再做处理,下面举例说明 上图是程序和参数设置,下图是给D0设置成十进制16的时候T-COM监控到的数据:

可以看出,在软件中设置起始符和终止符是对应ASCII 码的十进制数 设置的 65 监控到的是十六进制的 41 也就是 ASCII 码

“A” 的值。 Ascii 码表点此链接

关于功能的大致介绍到此为止,至于PLC编程指令的格式,请参考《信捷XC系列用户使用手册[指令篇]》第七章;大家可以下载一个T-COM 然后结合PLC 一起,编写程序,边监控,看看数据格式是什么样的,MODBUS RTU的协议对于格式有什么问题的可以参考《Modbus协议中文版.pdf 》,至于自由格式就没什么特殊要说的,一切以监控到的数据为准,遇到通讯数据设置好了,一切都正常了,就是通讯不上的时候,强烈建议使用串口调试工具监控,最好是先使用串口调试工具直接与下位机通讯,待通讯成功之后,确定了数据格式,然后再编写PLC的程序,这样效率更高。