通常在每个寻址区中存储哪种数据?什么是
Coil
?取自http://www.simplymodbus.ca/FAQ.htm:
#1 楼
虽然Bence是正确的,但是您也要求我一直在阅读设备文档以找出要收集的数据存储在寄存器中的位置,但是我从未感到过就像我了解的那样
创建Modbus服务器的位置决定
查找数据在寄存器中的唯一方法是通过设备随附的文档。
现在讨论决定,关于将哪些数据放置在何处,请考虑以下示例,
您有一个温度控制器,可为您提供以下数据,
1。开/关状态
2。温度设定点
3。实际温度(通常称为过程值)
然后,
打开/关闭状态:
如果要允许外部设备/软件打开/打开设备,关闭,然后将其放置在线圈中,否则,如果您只想通知用户打开/关闭状态,则可以将其放置在触点中,使其只读,从而限制了外部控制。
设置点
通常,您希望操作员更改设置点,并且此值将需要更多,因此将其放置在保持寄存器中,以便您可以对其进行读写。
实际温度
由于要报告实际感测的温度,因此它始终是只读的,因此应将其放置在输入寄存器中。
如果要将MODBUS通信集成到软件中尝试使用NMODBUS,它是一个免费的MODBUS库,对我非常有用。
https://github.com/NModbus/NModbus
希望能有所帮助。
#2 楼
从您已链接的文章开始:两个表存储开/关离散值(线圈),两个表存储数值(寄存器)。 (...)每个线圈或触点为1位(...)每个寄存器为1个字= 16位= 2个字节
因此回答您的问题。
每个寻址区通常存储哪些数据?
线圈/接触区存储单个位。例如,在照明系统中,您可以想象它就像为建筑物中的每个光源都有一个开/关位,可用于打开或关闭特定的光源。第二个区域保存的数据非常相同,但只允许读取访问。
寄存器区域存储数字数据。例如,如果我们在谈论输出数据,则为传感器读数。表名也暗示了这一点:“模拟输出保持寄存器”。
什么是线圈?
一个位变量,如布尔值。