EWM MFS PLC模拟器搭建

目录

目录

目录

前言

软件下载

下载SAP Java Connector

下载Download Apache Log

下载PLC模拟器源码 

PLC模拟器安装

系统环境

JAVA环境安装

SAP Java Connector安装

安装Visual C++环境

安装sap java connect

PLC安装 

EWM端设置

运行

建立连接

启动PLC

总结


前言

本节主要介绍下如何搭建PLC模拟器(本质上就是可以发送TCP\IP)消息,用于跟MFS进行交互。从描述上大家应该能看出本节对大家的技术是有要求的,首先要要大概明白TCP\IP的技术原理(握手机制),其次是大家对自动仓需要有一定的背景知识,知道一些常用的IoT设备,比如输送机,堆垛机等。

这个PLC模拟器是国外的一个大牛开发的,是开源的,其也有对应的博客进行说明(地址:How to setup and run PLC emulator for SAP EWM MFS | SAP Blogs),写这篇文章的目的是因为在搭建的过程中遇到很多问题(本人不是一个技术控),所以过程中遇到的问题记录下。

软件下载

下载SAP Java Connector

下载地址如下:

Download SAP Java Connector 3.1 SDK

因为我这边的环境是Win 64位的系统,所以下载如下:

 下载好之后备用。

下载Download Apache Log

下载地址如下:

Download Apache Log4j™ 2

下载如下图所示:

下载PLC模拟器源码 

下载地址如下:

mfs-plc-sim

这个是GitHub上的源码,所以没有账号的话需要先注册一个账号。

以上文件下载之后, 保存在本地,待后续使用。

PLC模拟器安装

系统环境

首先需要保障SAP服务器能够访问本地机器(即你部署PLC的机器),我使用的方式是使用事务代码OS01(因为没有直接登录到EWM服务器的权限),然后对目标地址做一次ping,如下所示:

点击指定IP地址,然后输入对应的IP(部署PLC机器的地址)

 

 如下图所示,说明从EWM服务器到PLC的服务器是通的

我这边使用的EWM服务器是部署在外网上的,PLC的服务器是阿里云(免费体验的版本),整体服务器通信时OK的。

JAVA环境安装

因为这个PLC是java开发的,运行需要在本地有java环境,java环境的安装参考另一篇文章,JAVA安装教程

SAP Java Connector安装

安装Visual C++环境

1、解压打开下载的SAP Java Connector,如下所示:

2、继续打开下下一级目录 ,如下所示:

3、双击打开intro.html页面,然后在显示的界面里面点击 “Installation”页签。然后点击Visual C++下载安装。

 4、在打开的页面中,选择中文简体版本下载,然后进行安装,如下所示:

 安装的直接点击Next即可,直到安装完成,这里就不截图了。

安装sap java connect

1、将文件夹“sapjco3-ntamd64-3.1.7”拷贝到C:\Program Files\sapjco3-ntamd64-3.1.7目录下,如下所示:

2、设置环境变量Path(具体设置方式可以参考java环境安装那部分),如下所示:

以上就成功安装好了sap java connect。

PLC安装 

1、在主盘下,我这边直接用的是C盘,在下面创建一个文件夹MFS,如下所示:

2、将下载的plc代码解压之后,将文件夹mfs-plc-sim-master下所有的文件拷贝到MFS这个文件夹下,如下所示:

 

3、从下载的 Apache Log的文件解压之后,将其中的文件“log4j2.xml”,“log4j-api-2.20.0.jar”和“log4j-core-2.20.0.jar”拷贝到文件夹MFS下,如下所示:

 4、将下载的sap java connect中的文件“sapjco3.jar”拷贝到MFS文件夹下,如下所示:

文件都准备好了,接下来就是修改连接地址

5、复制文件sampleSID.jcoDestination,重新命名为“S4H.jcoDestination”,如下所示: 

注意这个S4H指的是系统标识,如下所示:

修改文件S4H.jcoDestination里面的内容,如下所示:

jco.client.user=SAP登录的用户名
jco.client.passwd=登录密码
jco.client.lang=en
jco.client.client=对应的client
jco.client.ashost=EWM登录的服务器地址
jco.client.sysnr=实例编号
jco.client.r3name=系统标识
jco.destination.pool_capacity=3

6、复制文件“samplePROGID.jcoServer”,新命名为“MFSPLC.jcoServer”,如下所示:

 修改其内容,如下所示:

#EWM服务器地址

jco.server.gwhost=

#端口号,这个要看实列编号,比如是00,则端口号是sapgw00

jco.server.gwserv=sapgw80

#注册的程序,连接的时候要使用到

jco.server.progid=MFSPLC
jco.server.connection_count=1

#系统标识

jco.server.repository_destination=S4H

7、修改文件“MFS.properties”的内容如下所示:

# Java Connector settings
jcoDestination=S4H
jcoServer=MFSPLC

# Telegram structures
telegramStructureHeader=ZMFS_S_MFS_TELETOTAL
telegramStructure.LIFE=ZMFS_S_MFS_TELETOTAL
#telegramStructure.SYES=ZMFS_TELETOTAL
#telegramStructure.SYBE=ZMFS_TELETOTAL
#telegramStructure.SYEN=ZMFS_TELETOTAL
#telegramStructure.WT=ZMFS_TELETOTAL
telegramStructure=ZMFS_S_MFS_TELETOTAL
#telegramStructure=/SCWM/S_MFS_TELECORE
telegramStructure.WTCC=ZMFS_S_MFS_TELETOTAL
telegramStructure.WTCO=ZMFS_S_MFS_TELETOTAL
telegramStructure.IP=ZMFS_S_MFS_TELETOTAL

# Handshake settings
handshakeRequest=R
handshakeConfirmation=A
switchSenderReceiver=false

# Telegram types; only LIFE type is used for now
telegramType.LIFE=LIFE

# Telegram styling
!default for all handshake requests if telegram type not specified directly
style.*-R=0,0,0,B 
! default for all handshake acknowledgments if telegram type not specified directly
style.*-A=0,0,0,I 
! style for LIFE, handshake request
style.LIFE-R=255,0,0,B 
! style for LIFE, handshake acknowledgment
style.LIFE-A=255,0,0,I 
! styles for channel synchronization telegrams
style.SYES-R=255,153,0,B
style.SYES-A=255,153,0,I
style.SYBE-R=255,153,0,B
style.SYBE-A=255,153,0,I
style.SYEN-R=0,153,51,B
style.SYEN-A=0,153,51,I
# Type A communication channel - not used for now
sendingFM=
startingFM=
stoppingFM=
statusFM= 

ZMFS_S_MFS_TELETOTAL这个结构是在EWM MFS里面定义的结构,具体可以参考配置章节(地址:EWM MFS配置(AS/RS入库流程)_弈宸咨询的博客-CSDN博客),消息类型这里面配置的主要是在演示章节使用到的,需要增加的话,在这里面增加就可以了。

前面加#的意思是注释,意思是此行数据不起作用。

EWM端设置

EWM端需要提前设置一些事项,否则连接会有问题。

1、允许外部系统建立连接,大部分SAP系统设置不允许外部系统随便建立与SAP的TCP/IP连接,所以需要设置允许连接。

使用事务代码SMGW - 网关监控器,在菜单栏中点击转到->专家功能->外部安全性->维护访问控制列表文件,如下图所示,是系统里面维护的(可参考): 

2、SM59创建连接,如下所示:

3、需要完成EWM MFS的目标PLC地址,这个在配置章节有讲解,如下图所示:

事务代码:/SCWM/MFS_PLC - 维护可编程逻辑控制器 。

这里面的RFC目标系统就是上述创建的SM59连接。

事务代码:/SCWM/MFS_CCH - 维护通讯渠道 

主机和端口就是部署的PLC的主机地址和对应的端口号。

运行

建立连接

以上软件安装以及具体的配置都已经完成了,接下来我们开始测试运行,看下效果。

1、cmd进入到MFS文件夹下

快捷键Win+R,打开命令窗口,然后再输入cmd,打开cmd命令窗口,如下所示:

然后在cmd命令窗口中进入到C盘中的MFS文件夹下,如下所示

cd c:\mfs 

 

然后执行命令,建立与SAP的连接,如下所示

java -Dlog4j.configurationFile=log4j2.xml -cp sapjco3.jar;log4j-api-2.20.0.jar;log4j-core-2.20.0.jar;mfsplc.jar pl.sapusers.mfsplc.bridge.Bridge MFSPLC MFS.properties

 

如果出现下面的截图,说明应该是成功的:

然后我们可以去EWM检查下,连接是否注册成功,使用事务代码 SMGW - 网关监控器 ,然后点击菜单,转到->已登录客户端。如下所示:

 如果显示下面两行,则说明连接建立成功:

PS:得注意的是执行命令的时候有可能会报错,如果发生了发错需要详细的在命令行界面看报错信息,一般都会有比较明确的提示。

启动PLC

1、cmd进入到MFS文件夹下

快捷键Win+R,打开命令窗口,然后再输入cmd,打开cmd命令窗口,如下所示:

然后在cmd命令窗口中进入到C盘中的MFS文件夹下,如下所示

cd c:\mfs 

 

然后执行命令,建立与SAP的连接,如下所示

以同样的方式在cmd的命令行界面中执行命令,如下:

java -Dlog4j.configurationFile=log4j2.xml -cp sapjco3.jar;log4j-api-2.20.0.jar;log4j-core-2.20.0.jar;mfsplc.jar pl.sapusers.mfsplc.sim.Sim S4H MFS.properties

执行完之后,会出现界面,如下所示:

我们输入一个端口号(这个端口号是上面EWM端配置的PLC对应的端口号,如7001),然后点击Start,这时候是黄色的,说明与EWM还没有建立TCP/IP连接,如下图所示:

回到EWM,在Monitor(事务代码/SCWM/MON)里面启动PLC,如下所示: 

选择“开始通道”,注意要选择端口是是7001的,因为PLC端我们暂时只启动了端口7001,启动之后,看下状态变化,在EWM端可以看到,选择的PLC的状态变成非停止状态了,如下所示:

然后我们再回到PLC端看,演示已经变成绿色的了,说明双方已经建立了连接。

然后我们再选择”LIFE“,可以监控LIFE的消息(心跳消息),如下所示:

总结

到这里,已经成功建立了EWM MFS和PLC的连接,双方可互通消息,接下来就可以模拟实际的业务,然后再看消息的传递和接收。

需要注意的是:

1、搭建PLC模拟器的时候需要先完成EWM端的配置(参考本栏中的配置章节的文章);

2、在测试实际业务场景的时候,可能要启动多个PLC,比如堆垛机的,端口是7002,按照上述启动PLC的步骤即可;

3、需要保障EWM服务器和PLC服务器之间是可以通信的,这个是基础,否则后面会遇到各种问题。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

弈宸咨询

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

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

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

打赏作者

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

抵扣说明:

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

余额充值