CS機器人modbusRtu通訊
1.簡(jiǎn)介
本片文檔適用于CS系列使用modbus_rtu通訊,本篇以機器人與電腦端通訊助手建立配置連接及讀取和發(fā)送數據示列。目前CS系列支持modbus_rtu做主站。
2.modbus_rtu接線(xiàn)說(shuō)明
控制柜modbus_rtu硬件接線(xiàn)說(shuō)明,使用 RS-485 串行通信接口。
串口連接器引腳圖如下所示:Pin3:RS485-,Pin4:RS485+

通過(guò)485 轉 USB通訊線(xiàn)用于電腦端與機器人模擬通訊,實(shí)際接線(xiàn)可直接接入設備 RS-485 正負端。

3.腳本解析
3.1 控制柜modbus_rtu通訊配置
serial_config(True, 115200, 0, 1, 8, True)
功能: 該指令用于打開(kāi)或關(guān)閉機器人控制柜 RS-485 通信功能,并對其進(jìn)行配置。
? 注意內參
True:打開(kāi)串口通訊
115200:波特率
0:串口奇偶校驗為不校驗
1:串口停止位
8:串口的位寬 ,modbus_rtu則必須為8
True 時(shí)為 Modbus-rtu 模式, 指定為 False 時(shí)為 RS485 模式,不指定時(shí)使用默認 參數 False,
返回值: 如果配置成功,返回 True,如果配置失敗,返回 False,
serial_mode() 該指令用于查詢(xún)機器人控制柜 RS-485 處于何種模式下。 返回值: “MODBUS-RTU”或“RS485”,若二者均未使能,則為“CLOSE”。
serial_modbus_read_registers(1,5,2,0)指令,該指令用于讀取機器人控制柜modbus_rtu通信的數據。
? 注意內參
1:從站地址
5:寄存器地址
1:待讀取數據長(cháng)度
0:超時(shí)時(shí)間,小于等于1等待時(shí)間無(wú)限長(cháng)
返回值:[0,0]
serial_modbus_write_registers(1,1,[18])指令,該指令用于發(fā)送機器人控制柜modbus_rtu通信的數據。
? 注意內參
1:從站地址
1:寄存器地址
18:寫(xiě)入的數據
返回值:1 成功寫(xiě)入寄存器的數量,小于等于0視為寫(xiě)入失敗。
? 更多腳本指令及內填寫(xiě)參數可參考 CS 腳本手冊。
4.建立連接
打開(kāi)串口調試助手Modbus slave,連接參數需要設置 com 號、選擇與機器人設置對應的波特率、數據位長(cháng)度、校驗方式和停止位長(cháng)度,填寫(xiě)完成后確認打開(kāi)串口建立連接。

無(wú) NO connection為連接成功。

寫(xiě)入控制柜modbus_rtu通信配置及查詢(xún)模式腳本運行

在監控里查看返回值,ret 返回值是 true 為配置成功,如果配置失敗,返回 False,mode為modbus rtu模式。

5. 數據發(fā)送和讀取

運行腳本后可在調試助手端接收到機器人發(fā)送的數值

隨后運用調試助手向寄存器5寫(xiě)入2,運行讀取寄存器腳本。

通過(guò)監視查看讀取的值

6. 程序示例
global ret 定義變量
global mode 定義變量
global read_data 定義變量
global read_data1 定義變量
ret=serial_config(True,115200,0,1,8,True)打開(kāi)機器人控制柜 RS-485 通信功能
mode=serial_mode() 查詢(xún)機器人控制柜 RS-485 處于何種模式下
read_data1=serial_modbus_read_registers(1,5,1,0)讀取從站寄存器5數值
read_data=serial_modbus_write_registers(1,1,[18]) 從站寄存器地址1寫(xiě)入18