Unity开发APP与西门子SIMATIC系列PLC连接 第一章

魔晶自动化机电工程社团原创技术资料
专栏分类
工业,自动化,电器,软件开发,C#
各位们好,我是魔晶自动化机电工程社团的团长 万影 星梦,初次见面,请多多关照
这是我在哔哩哔哩的第一个作品
<后期会考虑为社团搞个网站,但现在不是时候>
声明:
魔晶自动化机电工程社团以该账号在哔哩哔哩发布文章和视频等投稿。
ん 前言
Unity目前是大部分游戏的开发引擎,在一些领域,Unity是非常优秀的引擎,虽然UE引擎也非常优秀,但UE需要扎实的C++基础,对一些不精通C++编程能力的人并不友好<其实UP主也不是很喜欢C++,话说不会真的有人敢说自己精通C++吧>,所以Unity就成为很多初学者的优选。

あ 正文

あ - 主题
本期,我将为大家讲解如何将Unity应用到工业自动化领域。

あ - 内容
首先,我们需要一个Csharp的引用,名为S7.Net,文件名为S7.Net.dll,需要的可以在我百度网盘的分享下载
网盘地址:
链接:https://pan.baidu.com/s/1yifTPT_Qz-UCmH9LCJp1NQ
提取码:ylim
愿意折腾的也可以去Github搞
S7.Net支持西门子SIMATIC - S7家族的大部分系列
支持的有:200/300/400/1200/1500系列 <但目前还不清楚200系列是200还是200Smart>
支持Profinet S7通讯
支持CPU基本信息读取
可以做到以一个CPU为中心,控制分布式IO模块和其他CPU <未实践,不敢保证,但理论上可以>
==知识链接==
dll文件
dll是应用程序拓展,是一些程序运行不可缺少的文件,里面存放的或许是代码,也有可能是图标、光标、音频、位图、AVI文件,作为程序运行不可缺少的文件,尽量不要删除dll文件
dll文件用途拓展 : 功能动态修改、将程序本体做小

将下载来的dll文件导入到Unity,具体步骤如下:
在Unity的Assess文件夹下新建一个文件夹,将其命名为:Plugins <划重点,文件夹的名字 不能错,否则Unity无法引用dll>,结果如下图所示:

2. 将S7.Net导入至该文件夹,如下所示:

3. 在Visual Studio下面添加引用,并在代码的引用下面添加这行代码:
using S7.Net;
<导入引用不用我说吧,如有不会的私信我,我专门出一期关于VS的基础教程>
结果如下所示:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using S7.Net;
3. 初始化PLC链接,输入以下代码:
static Plc PLC = new Plc(CpuType.<S71200/S71500/S7300/S7400/S7200>, ”<IP地址,数据格式String>“, 0, 1);
<注意,public和static不能在Void里面用,否则会报错>
代码如下:

如上图所示,要连接PLC就必须要执行一个函数
在上图中,Void Start()中有一个叫PLC.Open()的函数,它就是PLC连接的启动函数
为保证PLC.Open()的错误不会影响其他进程,建议这样写:
<命名空间:using System>
using System;
<主代码>
try
{
PLC.Open();
}
catch(Exception e)
{
Debug.Log(e);
}
输入以上代码后,就可以基本实现连接PLC的功能
为检测PLC是否连接成功,可以使用PLC.IsConnected来判断PLC的连接情况
使用方法:
当PLC.IsConnected = true时,表示为连接成功,反之为未连接成功
判断语句实例:
if (PLC.IsConnected == true)
{
//连接成功时执行的代码
}
else
{
//连接失败时执行的代码
}
或者可以这样:
if (PLC.IsConnected == true)
{
//连接成功时执行的代码
}
else if (PLC.IsConnected == false)
{
//连接失败时执行的代码
}
到这,实现与PLC连接的代码就完成了。

い 下期内容预告
下期,我将教大家完成PLC变量的监视和修改
<涉及TIA Protal软件,没有的可以准备好软件,但先让你的电脑准备好,TIA Protal是很吃内存和CPU的>
可以到创控教育下载相关软件

最后,感谢各位能观看我的专栏,你们的支持是UP主最大的动力

End