300PLCmpi转以太网通过MPI-ETH-XD1.0在发食品发酵控制系统中的应用

摘要

西门子CPU313C 只有一个MPI通讯接口,借助兴达易控MPI-ETH-XD1.0产品,将MPI通讯协议转换成以太网通讯协议,以此实现上位机和触摸屏同时监控的要求。

关键词

发酵集散控制系统

项目名称

《计算机集散控制系统---生化过程控制》

应用行业

目前,计算机集散控制系统广泛应用于各种流程工业的生产过程控制。本方案具体针对生化反应中的发酵过程,可以广泛应用于微生物发酵行业的生产控制。

项目设计要求

本计算机集散控制系统包含控制系统和被控对象,控制系统由上位机(工程师站)及下位机(操作员站)组成,被控对象为25L 发酵罐。上位机是工控机和移动工作站组成可以实现本地及远程控制的监控,下位机由两台触摸屏及西门子S7-300 PLC 控制器组成。

3.1 系统上位机设计要求
1. 工控机、触摸屏与PLC 的无缝连接。
2. 远程工作站可以实现发酵过程控制系统的实时监控。
3. 上位机配有生物发酵过程专用组态控制软件,具有如下功能:系统组态、运行参数的监视、控制参数设定和控制;优化分析;系统维护;数据备份等。
3.2 系统下位机设计要求
1. 下位机满足相应测控点的控制要求。
2. 下位机含有以太网通讯、控制网通讯、设备网通讯。
3. 下位机组态注释采用中文,可以随程序下载到控制器中,随时上传,备份;支持在线下装,不影响控制运行。

3.3 被控对象测控要求如下:

系统描述

本方案《计算机集散控制系统---生化过程控制》采用集散控制的思想,对发酵过程中需要的变量分散采集,集中控制。控制系统的核心控制器采用西门子S7-300 PLC。整个集散控制系统可以实现上位机及触摸屏的对整个发酵过程的实时监控,并能够实现移动工作站的远程监控。西门子CPU313C 只有一个MPI通讯接口,借助兴达易控MPI-ETH-XD1.0产品,将MPI通讯协议转换成以太网通讯协议,以此实现上位机和触摸屏同时监控的要求。对于上位机的控制,不仅要实现对发酵过程的时间监控,还要完成对发酵过程的优化控制与分析如:控制参数的自整定,自适应关联控制等。


解决方案

1.硬件设备选型
根据集散控制系统的设计要求,对系统的硬件设备做如下选型:

2.系统网络整体组态
整个集散控制系统既要实现上位机及触摸屏的对整个发酵过程的实时监控,又要实现移动工作站的远程监控。工控机、触摸屏及移动工作站与西门子S7-300都通过MPI 通讯方式通讯,而西门子300 主机只有一个MPI 借口,无法满足多台设备同时与PLC 通讯,为此我们借助兴达易控MPI-ETH-XD1.0 产品,将远西门子S7-300的MPI 借口扩展为一个MPI 接口及一个以太网接口,通过以太网的方式对整个系统进行组态,可实现系统的设计要求。
具体的组态方案如下图所示:

通过以上系统整体组态设计,可以实现现场触摸屏通过以太网方式与S7-300通讯,实时的监控,同样工控机也可实时进行监控;远端的触摸屏也通过以太网的方式连接到工业交换机上,也可实现监控;将工业交换机连接到网络服务器上,移动工作站也可通过网络服务器对整个系统进行实时监控。

系统优点

1. 通过借助兴达易控MPI-ETH-XD1.0产品,可以不用给系统配以太网模块,相对于西门子以太网模块,降低了系统的成本,使得系统性价比更高。
2. 通过借助兴达易控MPI-ETH-XD1.0产品,解决了多对一的通讯难题,使得通讯设置简单方便,方便用户操作。
3. 通过借助兴达易控MPI-ETH-XD1.0产品,使得系统具有良好的开放性,任意的监控设备设置只要设置好网关,都可以对系统进行监控。
4. 系统采用以太网方式通讯,具有更高的传输效率,受到的干扰较小,可以实现多台设备同时对系统进行监控,而且延迟较小。
5. 系统采用以太网方式通讯,方便用户后续开发使用。

现场照片

图1 系统主监控界面

图2 参数设定界面

图3 系统的控制流程图

兴达易控:mpi转ModbusRTU主站连接智能电表到300PLC
兴达易控:西门子200PLC转以太网在麦芽厂预处理水处理系统应用
兴达易控:西门子200PLC转以太网与昆仑通态触摸屏在锅炉系统应用案例
兴达易控:兴达易控PLC PPI转以太网_wincc集中采集多台PLC数据
兴达易控:西门子300PLC转以太网无需编程实现与1200PLC转以太网数据通信
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是使用MPI接口计算函数y=x^2在[-1,1]区间的积分的思路和代码示例: 思路: 1. 将区间[-1,1]均分为n个小区间,每个小区间的长度为delta_x=(1-(-1))/n=2/n。 2. 将n个小区间均匀分给每个进程,每个进程计算自己所分配的小区间上的积分值。 3. 每个进程将自己计算得到的积分值送给主进程,并由主进程将所有进程的积分值相加得到最终的积分值。 代码示例: ```c #include <stdio.h> #include <mpi.h> double f(double x) { return x * x; } int main(int argc, char** argv) { int rank, size, n = 1000000000, i; double a = -1.0, b = 1.0, delta_x = (b - a) / n; double local_sum = 0.0, global_sum = 0.0; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); int chunk_size = n / size; int start = rank * chunk_size; int end = start + chunk_size; for (i = start; i < end; i++) { double x = a + (i + 0.5) * delta_x; local_sum += f(x) * delta_x; } MPI_Reduce(&local_sum, &global_sum, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); if (rank == 0) { printf("The integral of y=x^2 in [-1,1] is: %lf\n", global_sum); } MPI_Finalize(); return 0; } ``` 在上述代码,我们使用MPI_Init()函数初始化MPI环境,取当前进程的rank和总进程数。然后,我们将n个小区间均匀分给每个进程,每个进程计算自己所分配的小区间上的积分值。计算完成后,我们使用MPI_Reduce()函数将所有进程的积分值相加得到最终的积分值。最后,我们使用MPI_Finalize()函数结束MPI环境。 需要注意的是,这里我们选择的是使用简单的矩形法来计算积分值,因此当n比较大时,误差可能会比较大,需要使用更加精确的数值积分方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兴达易控

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值