CS机器人modbusRtu通讯
1.简介
本片文档适用【dàng shì yòng】🤹于【yú】CS系列使👽用【yòng】🤹modbus_rtu通讯,本篇以🙂机器人与电脑【yǔ diàn nǎo】端通讯助手建立配置连接及【lián jiē jí】🛂读取和【dú qǔ hé】发送数🥜据示列。目前CS系列支💅持modbus_rtu做主站。
2.modbus_rtu接线说明
控制柜modbus_rtu硬件接线说明,使用【shǐ yòng】 RS-485 串行通【chuàn háng tōng】🥁信接口♿。
串口连🚎接器引【jiē qì yǐn】脚图如下所示【xià suǒ shì】🌒:Pin3:RS485-,Pin4:RS485+

通过📛485 转🎪 USB通讯【xùn】线用于电脑端与机器人模拟通【mó nǐ tōng】讯【xùn】,实际接【shí jì jiē】👐线可直🍃接接入设备【shè bèi】 RS-485 正负端。

3.脚本解析
3.1 控制柜【kòng zhì guì】🍳modbus_rtu通讯配置
serial_config(True, 115200, 0, 1, 8, True)
功能: 该指令【gāi zhǐ lìng】用于打【yòng yú dǎ】开或关【kāi huò guān】🈯闭机器🔛人控制柜 RS-485 通信功能,并对其😖进行配【jìn háng pèi】置🚔。
注意内参
True:打开串口通讯
115200:波特率
0:串口奇偶校验为不校验
1:串口停止位
8:串口的位宽【wèi kuān】🐎 ,modbus_rtu则必须【zé bì xū】🌥为8
True 时为【shí wéi】🐎 Modbus-rtu 模式🏳, 指定为【zhǐ dìng wéi】 False 时为【shí wéi】🐎 RS485 模式🏳,不指定🔭时使用默认【mò rèn】 参数 False,
返回【fǎn huí】值🏾: 如果配【rú guǒ pèi】👧置成功【zhì chéng gōng】,返回【fǎn huí】🎸 True,如果配【rú guǒ pèi】👧置失败,返回【fǎn huí】🎸 False,
serial_mode() 该指令【gāi zhǐ lìng】用于查📌询机器【xún jī qì】🛂人控制柜🤥 RS-485 处于何🚯种模式【zhǒng mó shì】🕤下。 返回值: “MODBUS-RTU”或“RS485”,若二者均未使【jun1 wèi shǐ】能【néng】,则为“CLOSE”。
serial_modbus_read_registers(1,5,2,0)指令,该指令♿用于读取机器【qǔ jī qì】人控制【rén kòng zhì】柜🛰modbus_rtu通信的♈数据【shù jù】。
注意内参
1:从站地址
5:寄存器地址
1:待读取数据长度
0:超时时间,小于等于1等待时间无限长
返回值:[0,0]
serial_modbus_write_registers(1,1,[18])指令【zhǐ lìng】,该指令【zhǐ lìng】✡用于发送机器人控制【rén kòng zhì】柜【guì】🗻modbus_rtu通信的🕔数据。
注意内参
1:从站地址
1:寄存器地址
18:写入的数据
返回值:1 成功写👈入寄存👛器的数【qì de shù】量,小于【yú】等于【yú】0视为写😹入失败【rù shī bài】。
更多脚【gèng duō jiǎo】本指令【běn zhǐ lìng】😴及内填写参数【xiě cān shù】😦可参考🏠 CS 脚本手册。
4.建立连接
打开串口调试助手【zhù shǒu】🔔Modbus slave,连接参📤数需要设置 com 号【hào】、选择与机器人设置对应的波特率【tè lǜ】、数据位【shù jù wèi】长度、校验方👠式和停【shì hé tíng】🍳止位长度,填写完【tián xiě wán】🎉成后确🖤认打开【rèn dǎ kāi】🎫串口建立连接。

无 NO connection为连接成功【chéng gōng】✌。

写入控💏制柜【zhì guì】🌝modbus_rtu通信配【tōng xìn pèi】🎭置及查询模式【xún mó shì】脚本运行

在监控😴里查看🍸返回值【fǎn huí zhí】🎲,ret 返回值【fǎn huí zhí】🎲是【shì】 true 为配置【wéi pèi zhì】成功,如果配置失败,返回🐾 False,mode为modbus rtu模式。

5. 数据发送和读取

运行脚本后可📓在调试【zài diào shì】🚲助手端🙄接收到【jiē shōu dào】机器人发送的【fā sòng de】数值

随后运用调试助手向🔗寄存器【jì cún qì】5写入2,运行读📿取寄存【qǔ jì cún】🥁器脚本【qì jiǎo běn】。

通过监视查看读取的值

6. 程序示例
global ret 定义变😯量【liàng】
global mode 定义变量
global read_data 定义变【dìng yì biàn】🕵量
global read_data1 定义变【dìng yì biàn】⬜量
ret=serial_config(True,115200,0,1,8,True)打开机器人控【qì rén kòng】制柜【zhì guì】 RS-485 通信功🌂能🧙
mode=serial_mode() 查询机器人控【qì rén kòng】制柜 RS-485 处于何🍭种模式😵下【xià】
read_data1=serial_modbus_read_registers(1,5,1,0)读取从站寄存⛱器【qì】5数值【shù zhí】🚻
read_data=serial_modbus_write_registers(1,1,[18]) 从站寄🛺存器地【cún qì dì】址【zhǐ】1写入🔏18