欢迎光临散文网 会员登陆 & 注册

你知道西门子PLC支持多少个连接吗?

2021-05-23 12:50 作者:付工上位机实战  | 我要投稿

很多人都知道西门子PLC有连接数的限制,下图是S7-1200的连接资源:


说实话,我是看得不太明白的,于是,有了下面的测试,测试基于xktComm库,我计划按顺序开启N个连接,然后每个连接在连接成功后再进行一次数据读取,确认通信正常,观察下N的限制是多少?

于是有了下面的代码:

Console.WriteLine("多连接通信测试开始");
List<SiemensS7> SiemensList = new List<SiemensS7>();
for (int j = 1; j <= 40; j++)
{
Thread.Sleep(500);
Console.WriteLine($"第{j}次连接测试" + "\r");
SiemensS7 objS7 = new SiemensS7();
if (objS7.Connect(IpAddress, CPU_Type.S71200, 0, 0))
{
Console.WriteLine($"第{j}次连接成功");
object value = objS7.Read("MD0", xktComm.Common.VarType.DInt);
if (value != null)
{
SiemensList.Add(objS7);
Console.WriteLine($"第{j}次通信测试读取成功:" + value.ToString());
}
else
{
Console.WriteLine($"第{j}次通信测试读取失败");
}
}
else
{
Console.WriteLine($"第{j}次连接失败");
}
}
while (true)
{
Console.WriteLine("请输入你要测试的连接索引,输入100表示退出");
int index = Convert.ToInt32(Console.ReadLine());
if (index != 100)
{
if (SiemensList.Count >= index)
{
object res = SiemensList[index - 1].Read("MD0", xktComm.Common.VarType.DInt);
Console.WriteLine("读取结果:" + res.ToString());
}
else
{
continue;
}
}
else
{
break;
}
}
Console.WriteLine("多连接通信测试完成");

为了保证连接始终可用,我增加了一个二次测试,就是将所有的连接都放到一个集合中,后续可用随意测试某个连接是否仍然可用。


你知道西门子PLC支持多少个连接吗?的评论 (共 条)

分享到微博请遵守国家法律