要求
西门子Simatic IoT2040
超声波游侠(SRF485WPR)
电源(Ranger为12V DC,Simatic为24V DC)
Python 3
超声波游侠
超声波游侠用于通过在击中目标之后发送反射回发射器的声音信号来检测目标物体的距离。超声波传感器用于室内和室外的各种应用。超声波传感器带有10个引脚,用于电源和RS485输出信号,如图1所示。
图1.超声波游侠
超声波游侠RS485通讯
通过向模块发送数据帧然后监听响应来读取数据。每个超声波游侠都有一个独特的24位地址写在模块的正面,如图2所示。您发送到SRF485WPR的数据帧如图3所示。
图2.超声波游侠地址
图3.数据框表单
中断 -定义为两个连续命令请求之间的时间延迟。
命令 -通过发送此信息,Ultrasonic Ranger会回复它的响应。
地址H,M,L -它是模块的24位地址。
数据 -如果命令不需要,则是您希望发送到模块的数据,零(0x00)。
CheckSum -它是所有先前字节总和的1的恭维(按位否定)(不计算中断)。
命令
图4.超声波游侠命令列表
检查总和计算
例如,让我们考虑应该发送到超声波游侠的帧在图5中表示。校验和是针对整个帧计算的,不包括中断,如下所述:
图5.数据格式
该 检查总和计算为?(0x51 + 0x01 + 0x89 + 0xAB + 0x00)的低字节。
添加所有项将导致0x51 + 0x01 + 0x89 + 0xAB + 0x00 = 0x0186。
0x0186的按位表示法是0xFE79。
我们使用0x79的低字节
连接
准备Siemens Simatic IoT2040
Siemens Simatic IoT2040基于Yocto Linux工作,需要安装在SD卡上,并应插入Simatic。Yocto Linux可以从西门子网站下载。下载图像后,将SD卡插入Linux计算机的SD卡插槽,然后按照以下说明操作。
在Linux计算机上,打开终端(ctrl + alt + t)并使用以下命令转到下载Yocto Linux zip文件的位置:cd Downloads。在这种情况下,zip文件位于下载中。
使用以下命令解压缩文件夹:
sudo unzip Example_Image_V2.2.0.zip
通过运行以下命令验证SD卡的位置:
df -h
通过运行以下命令卸载SD卡。将“mmcblk0”替换为计算机显示的SD卡位置:
unmount / dev / mmcblk0
使用以下命令将Yocto Linux映像刻录到SD卡上:
sudo dd bs = 1M if = name_of_image = SD card_location
将映像安装到SD卡上后,将SD卡放入Simatic的SD卡插槽中,如图6所示。
图6. Simatic IoT2040上的SD卡安装
Simatic有两个名为X1P1LAN和X2P1LAN的以太网端口。第一个以太网端口即。X1P1LAN的默认DHCP地址为192.168.200.1。使用Secure Shell(SSH),您可以从Linux计算机与Simatic进行通信。为此,请将以太网电缆的一端连接到计算机,将以太网电缆的另一端连接到Simatic的X1P1LAN端口。通过SSH登录Simatic。
ssh root@192.168.200.1
在Simatic上安装Pip
为了使用Simatic从Ultrasonic Ranger读取数据,使用Python。默认情况下,Python安装在Yocto Linux上。一些能够串行发送数据帧的Python库需要安装在Simatic上。为此目的,使用pip。Pip是一个用于安装和管理Python库的包管理系统。
要在Simatic上安装pip,应编辑/ etc / opk /opkg.conf文件,并为存储库添加以下行:
src iotdk-all http://iotdk.intel.com/repos/2.0/iotdk/all
src iotdk-i586 http://iotdk.intel.com/repos/2.0/iotdk/i586
src iotdk-quark http://iotdk.intel.com/repos/2.0/iotdk/quark
src iotdk-x86 http://iotdk.intel.com/repos/2.0/iotdk/x86
接下来,应编辑/ etc / opkg /arch.conf文件并插入以下行:
arch i586 12
arch quark 13
arch x86 14
接下来,更新包数据库:
opkg update
现在我们可以安装一些有用的包:
opkg install ca-certificates python-json python-io python -re python-xmlrpc python-ctypes openssh-sshd
curl - insecure -L“ https://bootstrap.pypa.io/get-pip.py ”> get-pip.py
python get-pip.py
配置pip后,我们现在可以安装python库:
pip install pyserial
pip install microgear
pip install serial
创建Python文件
安装了所有必需的库后,我们现在开始编写一个Python代码,用于读取Ultrasonic Ranger中的数据。为此,创建一个名为ranger的Python文件,如下所述:
nano ranger.py
使文件可执行,如下所述:
chmod + x ranger.py
使用以下命令运行该文件:
./ ranger.py
完整的源代码:https://gitlab.com/muthineni/NETPIE-Python
物联网平台(NETPIE)
NETPIE是基于物联网云平台服务,通过推动从应用程序开发人员或设备制造商手中连接物联网设备的复杂性,以最无缝和透明的方式将物联网设备(“事物”)互连在一起到云端。在NETPIE上,创建应用程序并生成设备密钥。“board”是为此演示创建的应用程序ID,如图7所示:
图7.在NETPIE上创建应用程序ID
创建数据源,如图8所示:
图8.创建数据源
这是结果:
图9.显示Ranger在NETPIE上检测到的目标距离
结论
该方法讨论了使用Siemens Simatic IoT2040作为从SRF485WPR接收数据的网关设备。通过Simatic IoT2040,处理行业中的生产数据变得更加高效,从而开辟了工业物联网(IIoT)应用的道路。