商品详情大图

IO控制包分散控制

及时发货 交易保障 卖家承担邮费

商品详情

. Modbus协议源代码简介



2.1 关于modbus中的常见两种寄存器区别

保持寄存器:指可以通过通信命令读或者写的寄存器;通常是一些功能控制寄存器或者输出寄存器等。不同的设计中,有些保持寄存器是掉电保持;有些则不然。

输入寄存器:指只能读不能写的寄存器,通常是状态寄存器或者是输入结果寄存器等。

线圈寄存器,可以类比为开关量,每一个bit都对应一个信号的开关状态。所以一个byte就可以同时控制8路的信号。

离散输入寄存器:相当于线圈寄存器的只读模式,每个bit表示一个开关量,而他的开关量只能读取输入的开关信号,无法写入。

2.2 Modbus开源库常用配置接口

1)modbus_t* modbus_new_rtu(const char *device,

int baud, char parity, int data_bit,

int stop_bit)

modbus_new_rtu函数用于生成Modbus的句柄,在本函数中可以设置通

信协议中的波特率、校验位、数据长度以及停止位,其返回值为通过设置后生成的句柄,用于在读写数据时使用,每个句柄可以执行一个modbus指令。如果这些配置参数有误,就会返回一个空指针。

2)static int _modbus_rtu_connect(modbus_t *ctx)

本函数主要功能是将通信串口设置为rtu模式。

3)int modbus_set_slave(modbus_t *ctx, int slave)

本函数设置本句柄的从机号。



2.3 Modbus主机通信常用接口

1)int modbus_write_registers(modbus_t *ctx, int addr, int nb, const uint16_t *src)

本函数为将数组中的数据写入到远端设备(从机)的寄存器中,写入的地址位addr,长度为nb个寄存器。

2)int modbus_read_registers(modbus_t *ctx, int addr, int nb, uint16_t *dest)

本函数将远端设备(从机)保持寄存器中的数据复制到数组dest中。

3)int modbus_read_input_registers(modbus_t *ctx, int addr, int nb,

uint16_t *dest)

本函数读取远端设备(从机)地址为addr输入寄存器中的数据,数据长度为nb。



2.4 Modbus从机通信主要接口

1)int _modbus_receive_msg(modbus_t *ctx, uint8_t *msg, msg_type_t msg_type)

本函数可以用于处理来自主机的请求,返回接受到的字符的数量,如果成功,则返回uint8_t数组中的消息(即主机发送的命令),否则返回-1。



2)int modbus_reply(modbus_t *ctx, const uint8_t *req,

int req_length, modbus_mapping_t *mb_mapping)

本函数负责在接受到请求后,分析请求并生成响应消息,并且发送到主机。如果请求属性为广播,那么不发送响应消息。

三、 调试问题分享

  在调试中,从机的Server进程会经常出现崩溃,后发现在Server经常每次处理配置变更时,都会重新new出新的modbus句柄,但却不释放原有句柄,这种处理会导致多次修改Modbus通信配置时,从机Server进程崩溃。

解决方案:在程序中判断,当modbus句柄已经存在时,此时更新配置后,不再new出新的句柄,而是调用接口 modbus_close(), modbus_free()释放句柄中的配置,然后用更新后的配置重新设置句柄参数。

一旦服务器处理请求,使用合适的 MODBUS 服务器事务建立 MODBUS 响应。

根据处理结果,可以建立两种类型响应:

一个正 MODBUS 响应:
响应功能码 = 请求功能码

一个 MODBUS 异常响应:
01、用来为客户机提供处理过程中与被发现的差错相关的信息;

02、响应功能码 = 请求功能码 + 0x80;

03、提供一个异常码来指示差错原因。

5、功能码分类
有三类 MODBUS 功能码。它们是:

公共功能码

是较好地被定义的功能码,
是的,
MODBUS 组织可改变的,
公开证明的,
具有可用的一致性测试,
MB IETF RFC 中证明的,
包含已被定义的公共指配功能码和未来使用的未指配保留供功能码。
用户定义功能码

有两个用户定义功能码的定义范围,即 65 至 72 和十进制 100 至 110。
用户没有 MODBUS 组织的任何批准就可以选择和实现一个功能码
不能被选功能码的使用是的。
如果用户要重新设置功能作为一个公共功能码,那么用户启动 RFC,以便将改变引入公共分类中,并且指配一个新的公共功能码。
保留功能码

一些公司对传统产品通常使用的功能码,并且对公共使用是无效的功能码。

IS420UCSBH1A是通用电气公司的Mark VIe系统控制器。MKVIe是GE设计的的Speedtronic系统之一,用于控制水力、燃气和蒸汽涡轮系统。IS420UCSBH1A是现有的五个UCSB模块之一。

IS420UCSBH1A是一个单模块控制器,使用其板载I/O网络与I/O包接口。以前的Speedtronic系统中的旧控制器通过背板连接器实现了相同类型的接口。该装置是气冷式的。它没有板载风扇或电池,但配有内置电源。该设备很小,尺寸为6.4英寸x 8.1英寸x 1.4英寸。其他规格包括:

600 MHz英特尔EP80579微处理器
256 MB DDR2 SDRAM内存,带闪存支持的SRAM
支持控制块语言(模拟和数字)的QNX中微子操作系统
双绞线10Base-TX/100Base-TX和RJ-45连接器
用于许多应用的TCP/IP协议
2.4磅,不包括运输包装
环境工作温度为-22至149华氏度。
IS420UCSBH1A设计为直接安装到面板金属板上,设备的散热片保持通畅,以允许适当的气流。

IS420UCSBH1A的正面设计有三个以太网端口,用于连接R/S/T I/O网络,以及三个额外的ENET端口,用于连接HNMIs、其他控制器、历史记录和点对点连接。前面板还有一个USB端口。控制器的设置可以使用GE的ToolboxST应用程序来完成。

IS420ESWAH2A是通用电气公司为Mark VIe系统提供的几种以太网交换机之一。该系统由通用电气公司制造并发布,用于控制和管理工业汽轮机系统。

IS420ESWAH2A是一款非托管以太网交换机,旨在满足实时工业控制系统的需求。该交换机具有多种功能/特性,包括802.3/802.3u/802.3x兼容性、半双工和全双工自动协商、惠普-MDIX自动感应和10/100基本铜缆。该设备还具有多个led,让用户知道何时链路处于活动状态,何时设备通电,以及每个端口的速度。该单元有八个支持10/100BASE-TX的端口,以及两个支持100BASE-FX、LC类型连接的端口。

IS420ESWAH2A通常使用DIN导轨安装在控制系统面板内。通用电气公司只了某些DIN导轨夹具用于ESWA以太网交换机。根据所需的安装方向,有两种不同的夹子可供该开关使用。如果您需要平行于导轨安装交换机,请使用编号为259B2451BVP1的夹子。如果需要垂直于导轨安装交换机,请使用夹子259B2451BVP2。

下一条:EL100T传感器DC/DC
厦门雄霸电子商务有限公司漳州分公司为你提供的“IO控制包分散控制”详细介绍
厦门雄霸电子商务有限公司漳州分公司
主营:欧美进口模块,卡件 控制器,触摸屏 伺服,工控系统备件
联系卖家 进入商铺

IO控制包分散控制信息

最新信息推荐

进店 拨打电话 微信