1.1 先逆时针螺开端子口上的螺丝(见图一)
1.2 直到可见端口里的卡片会从上移到下打开(见图二)
1.3 接口定义分别为(见图三)
1.4 电源线分别接入从左到右第一二个口后顺时针螺紧螺丝让卡片从下到上卡住线(见图四)
1.5 按照串口线上黑、蓝、棕色线分别接入端子口从左到右的第三四五口(见图五),再顺时针螺紧螺丝让卡片从下到上卡住线。
1.6 做好后端子口接上设备,另一头DB9口(见图六)接上电脑的串口就可完成电脑与设备的连接。
2.1 组网拓扑
如下:
2.2 在服务端电脑上打开DEMO软件作为数据中心,设置如下:
2.3 在网关路由器上做NAT映射。
例如用四信的路由器做网关NAT映射设置如下:
在电脑上点击开始-->运行-->输入CMD
2.4 确定后输入IPCONFIG
2.5 在浏览器中输入192.168.1.1进入网关路由器
2.6 在NAT选项下添加nat条目
添加完成后,当来自公网的数据包访问服务器公网IP的4415端口时,网关就把数据转给内网的数据中心192.168.1.103的4415端口。这样服务器端就配置好了。
IP MODEM的参数配置方式有两种:
通过专门的配置软件: 所有的配置都通过软件界面的相应条目进行配置,这种配置方式适合于用户方便用PC机进行配置的情况。
通过扩展AT命令(以下简称AT命令)的方式进行配置:在这种配置方式下,用户只需要有串口通信的程序就可以配置IP
MODEM的所有的参数,比如WINDOWS下的超级终端,LINUX下的minicom,putty等,或者直接由用户的单片机系统对设备进行配置。在运用扩展AT命令对IP MODEM进行配置前需要让IP MODEM进入配置状态。
下面以配置软件的方式为主详细介绍IP MODEM的各配置项。
3.2 参数配置详细说明
对于HEX格式,那么数据必须为十六进制字符,且字符数不能为奇数。
如“12AB” 格式正确
“12A” 格式错误,字符数为奇数
“12G” 格式错误,非十六进制字符
在串口参数设置栏内显示当前打开串口的串口参数,默认波特率为115200,连接设备打开相应串口号,运行界面如下:
3.4 设备上电
设备上电后,参数配置软件使IP MODEM进入配置状态后会自动载入设备中的当前配置参数,并显示在右边的“配置界面”中,至此可以开始配置IP MODEM中所有配置参数。
3.5 配置中心服务参数
点击“中心服务”项,配置对应要连接的服务器地址和端口信息(出厂默认地址和端口无法用于测试,请按实际环境配置)。当前支持同时并发5个中心使用,可根据服务器数量配置。当前只有在中心数为1时,备服务器生效,可在主服务器异常时自动切换。
3.6 配置串口通信参数
点击“串口”栏,进行232或485串口通信参数配置,需配置与实际串口终端设备一致,否则通信不上。
4.1 打开串口工具
在客户端处用电脑接IP MODEM,在电脑上打开出串口工具,设置正确的串口以及波特率(与IP MOEDM参数中串口波特率参数一致)重新拔插电源。IP MODEM将开始连接服务器端数据中心DEMO。
当看到connected时表示已经连接成功,这时在串口工具中输入test1,在demo服务器端可收到数据(见下图)
客户端串口工具:
服务器端DEMO工具:
在服务器端demo软件中左下角输入test2点击发送,客户端串口软件同样可收到数据,见下图
服务器端DEMO工具:
客户端串口工具:
五、上位机通过发MODBUS指令采集F-M100的IO口数据
IO1、IO2、IO3 可设置为数字输入、输出,ADC1、ADC2可设置为模拟输入,采集4-20mA电流。PC需要下发指令采集IO1、IO2、IO3、ADC1、ADC2数据。
说明:IO1为数字量输出时寄存器地址:OX50000(功能码05)
IO2为数字量输出时寄存器地址:OX50001
IO3为数字量输出时寄存器地址:OX50002
IO1为数字量输入时寄存器地址:OX20000(功能码02)
IO2为数字量输入时寄存器地址:OX20001
IO3为数字量输入时寄存器地址:OX20002
ADC1为模拟量输入时寄存器地址:OX40000(功能码04)
ADC2为模拟量输入时寄存器地址:0X40001
接线方式:
模拟量的输入:
1.单线制:传感器的模拟量输出直接接到F-M100模拟量的输入口(ADC1/ADC2)。
2.两线制: 传感器的模拟量输出的正极接F-M100模拟量的输入口(ADC1/ADC2),地线接GND。
数字量的输入:
{C}1. {C}低电平输入:F-M100的GND出来接触点开关的输入,触点开关的输出接到F-M100的开关量输入口(IO1或者IO2或者1O3)。
高电平输入:直接往IO1或者IO2或IO3输出3.3V电压,地线需要接F-M100的GND。
MODBUS设置:
不同的F-M100可以通过设置不同的modbus地址来区分。
IO1、IO2、IO3设置为数字输入,如下图
IO1为数字量输入时寄存器地址:OX20000
IO2为数字量输入时寄存器地址:OX20001
IO3为数字量输入时寄存器地址:OX20002
查询IO1寄存器状态(配置成了数字量输入)
发:01 02 00 00 00 01 B9 CA
回:01 02 01 01 60 48 (IO1高电平)
回:01 02 01 00 A1 88 (IO1低电平)
查询IO2寄存器状态(配置成了数字量输入)
发:01 02 00 01 00 01 E8 0A
回:01 02 01 01 60 48 (IO2高电平)
回:01 02 01 00 A1 88 (IO2低电平)
查询IO3寄存器状态(配置成了数字量输入)
发:01 02 00 02 00 01 18 0A
回:01 02 01 01 60 48 (IO3高电平)
回:01 02 01 00 A1 88 (IO3低电平)
查询IO寄存器状态ModBus指令说明 (如01 02 00 02 00 01 18 0A)
RTU 地址 |
功能码 |
寄存器地址 |
寄存器个数 |
CRC 校验 |
|||
01 |
02 |
00 |
02 |
00 |
01 |
18 |
0A |
回包(01 02 01 01 60 48)
RTU 地址 |
功能码 |
字节数 |
寄存器状态 |
CRC 校验 |
|
01 |
02 |
01 |
01(高电平) |
60 |
48 |
01 |
02 |
01 |
00(低电平) |
A1 |
88 |
IO1、IO2、IO3设置为数字输出,ADC1、ADC2设置为模拟输入
置IO1寄存器状态(配置成了数字量输出)
发:01 05 00 00 FF 00 8C 3A(设置IO1高电平)
回:01 05 00 00 FF 00 8C 3A
发:01 05 00 00 00 00 CD CA(设置IO1低电平)
回:01 05 00 00 00 00 CD CA
置IO2寄存器状态(配置成了数字量输出)
发:01 05 00 01 FF 00 9C 0A(设置IO2高电平)
回:01 05 00 01 FF 00 9C 0A
发:01 05 00 01 00 00 AC 0A(设置IO2低电平)
回:01 05 00 01 00 00 AC 0A
置IO3寄存器状态(配置成了数字量输出)
发:01 05 00 02 FF 00 2D FA (设置IO3高电平)
回:01 05 00 02 FF 00 2D FA
发:01 05 00 02 00 00 6C 0A(设置IO3低电平)
回:01 05 00 02 00 00 6C 0A
设置寄存器状态ModBus指令说明 (如01 05 00 00 FF 00 8C 3A)
RTU 地址 |
功能码 |
寄存器地址 |
置高 |
CRC 校验 |
|||
01 |
05 |
00 |
00 |
FF |
00 |
8C |
3A |
读取ADC1寄存器数据(配置成了模拟量输入)
发:01 04 00 00 00 01 31 CA
回:01 04 02 00 B8 B9 42 (电流输入为4mA)
回:01 04 02 02 B9 79 E2 (电流输入为15mA)
回:01 04 02 03 A3 F9 B9 (电流输入为20mA)
读取ADC2寄存器数据(配置成了模拟量输入)
发:01 04 00 01 00 01 60 0A
回:01 04 02 00 B8 B9 42(电流输入为4mA)
回:01 04 02 02 BD 78 21 (电流输入为15mA)
回:01 04 02 03 A8 B8 7E (电流输入为20mA)
读取寄存器数据ModBus指令说明 (如01 04 00 01 00 01 60 0A)
RTU 地址 |
功能码 |
寄存器地址 |
寄存器个数 |
CRC 校验 |
|||
01 |
04 |
00 |
01 |
00 |
01 |
60 |
0A |
回包 (01 04 02 00 B8 B9 42)
RTU 地址 |
功能码 |
字节数 |
采集值 |
CRC 校验 |
||
01 |
04 |
02 |
04 |
B8 |
B9 |
42 |
电流换算公式:3.3/1023 *采集值/150 *1000= (mA)
电压换算公式:3.3/1023 *采集值/12.1*20.16= (V)
(采集值需转换成十进制)