接上篇,记录一下【Unity 3D对博途PLCSIM的通讯】文章有点长~仔细看,很基础
本文参考链接:西门子PLC丨PROFINET通讯仿真(虚拟通讯)做了一些更详细的优化,本文使用的类库并非原作者使用的类库。
首先,昨天项目已经创建好了,这边也加了一个InputField和一个Button,可以实现简单的读取,ok开始。
放入准备好的通讯类库;
新建一个博途的项目,本次测试使用博途V15,测试环境为虚拟机,Unity运行在本地计算机, 建立博途项目流程如下:
新建项目,右键项目-属性-保护-对勾,如图:
不得不说的是,仿真中加密的FB块是无法下载的哦~
添加CPU,本次使用S7-1200 系列,设置CPU安全等级,允许PUT/GET通信,300/400应该是没有的,可以正常用。
写程序,写完程序后重点来咯~~~以下内容,尤其是仿真和开工具的顺序很重要。
首先关闭虚拟机防火墙,都会吧。。。
虚拟机设置网络为桥接,选择好本机用的网卡。
设置CPU的IP,如下图,192.168.10.25:
设置虚拟机网卡IP,最好手动,要不然麻烦。我设置192.168.10.10(必须全部同网段)
然后管理员身份运行NetTOPLCSIM;(仿真之前运行)
上图提示获取端口,点击是即可,如果后期出现问题,也可以点击tools进行获取。 下图获取成功后点击OK
然后点击PLCSIM,点击确定
然后出现PLCSIM,直接搜索下载即可。
可以看到我们仿真已经成功了
然后点击nettoplcsim的Add,添加一个服务;
不要自己手动输入,要检测出来的。
注意观察下面的槽号要求;
设置完成点击OK,点击启动服务;
服务启动之后,我们进入客户端层面,Unity3D简单写了一个读取的脚本,代码如下(注释写的很清楚了):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using PLC通讯库.Siemens;//引入类库
using Siemens;//引入类库
using System.Threading;//新开线程不影响主线程,注意,该线程不适用于Unitty中组件的操作。
using UnityEngine.UI;//引入UI可以操作UI,不多说都懂
public class OP : MonoBehaviour
{public InputField floattext;Thread CONPLCNOW;//定义PLC连接线程,读取数据量不大,就不新建线程了public SiemensS7Net siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200);//实例化类库// Start is called before the first frame updatevoid Start(){//不加按钮了,直接运行就实例化然后连接CONPLCNOW = new Thread(CON);//定义线程方法CONPLCNOW.Start();//执行线程}private void CON(){//这里是连接PLC用的方法siemensS7Net.IpAddress = "192.168.10.10";//定义所要连接PLCsiemensS7Net.Port = 102;//定义端口号S7NET通用102siemensS7Net.ConnectServer();//连接PLCif (siemensS7Net.ConnectServer().IsSuccess)//判断打印,不说了{print("连接成功");}else { print(siemensS7Net.ConnectServer().ToMessageShowString());}}public void readfloat()//定义读取按钮点击的方法{floattext.text = siemensS7Net.ReadFloat(floattext.text).Content.ToString();//读取并赋值,相信大家都能看懂。}// Update is called once per frameprivate void OnDestroy(){CONPLCNOW.Abort();//记得关闭线程哦}
}
可以看到图中PLC的IP是10而不是25,因为信息是通过转发的。
在客户端添加一个IP,如下图,我客户端IP为192.168.10.200
将button的点击事件绑定readfloat(),将定义的Iputfield挂到脚本上,以下是Unity基本操作,可以略过。
运行一下看看~
OK!已经连接成功啦,那我们尝试一下读取数据(上动图!)
欧克!这篇文章里,写了太多,要类库的可以私信但是不知道啥时候能回复。
接上篇,记录一下【Unity 3D对博途PLCSIM的通讯】文章有点长~仔细看,很基础相关推荐
- 西门子TIA博途软件多版本共存安装教程
众所周知,博途多版本安装在同一个系统中存在很大的问题,一方面是同一个大版本下不能安装多个小版本,另一方面也是一个系统安装多个大版本存在专业版和舒适版之间无法同存的问题(例如v14 wincc comf ...
- 使用PLCSIM Advanced仿真博途S7-1500 OPC UA
你知道工控人平时在哪里交流,博途工控人社区 你知道工控人平时在哪里交流,博途工控人社区 准备工具 博途软件,UaExpert软件,UaExpert软件可以关注公众号并回复UaExpert获取 创建一个 ...
- kepserver连接博途S7-1200仿真通信
kepserverl连接S7-1200仿真并不难,只是有很多配置需要设置,一旦设置环节中出错一个都会导致连接失败. 所用到的软件工具:KepserverEX6.13.博途V17以及通讯插件NetToP ...
- Unity 3D 博客汇总
附录 X4.作业优秀博客汇总 目录 文章目录 附录 X4.作业优秀博客汇总 1.最有价值个人博客(Valuable Person Blogs) 2.博客表达技巧与游戏创新 2.1 写读者欢迎的游戏博客 ...
- 聊聊在博客园写博客的这两年《Unity 3D脚本编程:使用C#语言开发跨平台游戏》正式出版...
版本状态: 2016.9 第一次印刷 (2016.11 输出到台湾) 2017.1 第二次印刷 2017.5 第三次印刷 2017.5 电子书上线:Unity 3D脚本编程--使用C#语言开发跨平台游 ...
- Unity 3D学习笔记之一 界面介绍
因为学校的课程,本学期对Unity 3D有学习的要求,在博客中记录下自己的Unity学习之路(内容摘录自书本和视频,书本为Unity 4.x从入门到精通) 一.Unity界面介绍 首先进入U ...
- Unity 3D 菜单栏快捷键详解
nity 3D菜单栏及快捷键详解 File 菜单 Edit 菜单 Assets 菜单 GameObject 菜单 Component 菜单 Window 菜单 Help 菜单 其他快捷键 Unity ...
- Unity 3D项目 - 01 - 开始游戏主界面
Unity 3D项目 - 01 - 开始游戏主界面 一.常用代码 0.打印调试 Debug.Log():将消息记录到 Unity 控制台.<Debug-Log - Unity 脚本 API> ...
- Unity 3D 实现拾取物品功能(一)
Unity 3D 实现拾取物品功能(一) 刚刚接触Unity不久,为了记录自己学习的过程.我决定写写博客,哈哈哈.在网上看了一些拾取物品的实现原理之后,自己摸索了一下,写了个小Demo,下面来介绍一下 ...
最新文章
- 常用的方法论-鱼骨图
- 已经被处理的消息不能丢
- 数据结构与算法--2.数组的定位排序
- 所有的service报红但不报错_从一个应用报错来看centos系统的/tmp目录自动清理规则...
- Python虚拟环境你会用了吗?手把手教你
- 安装服务器选择什么系统盘,云服务器ecs选择什么系统盘
- 如何修改(显示)文本文档后缀名
- 人肉搜索将被禁止,大家要保护好自己的个人信息!
- php万能密码在线视频讲解,万能密码
- 禁用Ubuntu鼠标中键复制功能
- spark 相关性分析_《Spark机器学习进阶实战》——2.3.2 相关性分析
- 最珍贵的角落-赞美之泉(音乐河2)
- NC 开发环境因电脑高分辨率导致系统文字、图标变小等。
- c++实现贪心法构造最大整数问题
- 数梦工场携手宁波共建创新大数据云基地
- Vue 路由导航守卫(全局守卫、路由独享守卫、组件内守卫)详解
- ESXi无法直通显卡
- 2021-10-13 CAN DM1排放和故障代码
- 硅谷最神奇的成功秘诀《世界上最神奇的24堂课》(查尔斯.哈奈尔, Charles F.Haanel)...
- 专业相关的计算机知识领域,计算机技术(领域)