目录
- 前言
- 一、摩通传动
- 实验图
- 1.1 配置软件 IO_Studio
- 1.2 测试软件Modbus Poll
- 1.2.1 读写设置测试
- 1.2.2 AI信号的读取
- 1.3 对应的C#连接Modbus的测试代码如下【自制,仅供参考】
- 1.4 最终实验图
- 更新时间
前言
参考文章:
自己需要了解和对比某些产品的Modbus通讯工具,而做的记录。
一、摩通传动
他们的IP地址都是需要在他们的软件上进行设置的。
实验图
1.1 配置软件 IO_Studio
默认地址是:192.168.4.100
要将自己的电脑设置同一网段下。【如下图:】
这样就能连接成功了
1.2 测试软件Modbus Poll
这是他们提供的测试软件。
首先,进行和Modbus通讯工具的连接【如下图】
1.2.1 读写设置测试
- 已知,我们的开关接在DI模块的DI0位置处,按照下面的设置表可知:DI模块在4区,即4X处,起始地址从512~1023位。而摩通传动的DI模块共有16个接入点。按照2进制编码的方式来记录。
- 例如:DI0有信号输入,则512的地址上显示1
- DI1有信号输入,512地址显示2
- DI2有信号输入,512地址显示4
- DI3有信号输入,512地址显示8
所以当512地址显示为9时,代表DI3和DI0有信号输入。
1.2.2 AI信号的读取
1.3 对应的C#连接Modbus的测试代码如下【自制,仅供参考】
public partial class Form1 : Form
{
//Fields
private ModbusTcpNet modbusTcp = new ModbusTcpNet("192.168.4.100", 502);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
int DI_value = modbusTcp.ReadInt16("x=3;512").Content;//这个是正确的读取
label1.Text = DI_value.ToString();
int AI_value = modbusTcp.ReadInt16("x=3;513").Content;//这个是:手持电流电压信号发生器外接AI0的输入值。这里只是模拟量值,需要自己按照公式进行转化。
label2.Text = AI_value.ToString();
// 这个0.19是和实际的偏差值
double value = ((AI_value + 32767.0) / (32767.0 * 2)) *20.0-10-0.19;//这个32767.0,是测出来的手持电流电压输入器,在电压值为10V时,对应的模拟量。
label3.Text = value.ToString("F2");
}
}
1.4 最终实验图
更新时间
- 2024.09.30:创建。