故事作者:菲戈

最近创作

看看TA的故事

【征文】VB还未淘汰!VB使用S7.NET与smart200通讯

已锁定

菲戈

  • 帖子

    5906
  • 精华

    63
  • 被关注

    581

论坛等级:至圣

注册时间:2009-01-22

黄金 黄金 如何晋级?

【征文】VB还未淘汰!VB使用S7.NET与smart200通讯

13657

23

2019-08-14 12:06:38

star star star star

       好像忽然间周围做上位机软件的都用上了C#开发,年初的时候自己也买了一本书,不过可惜又一次《从入门到放弃》哈哈。主要是没遇到什么项目非得用C#,熟悉的VB暂时都能应付,所以学习的热情就没有了。VB被称为最低级的编程语言,程序猿们基本都很鄙视这种语言。在他们的言语里流露出什么执行效率太低各种受限的样子。咱不懂咱也不敢问。自己的理解C++好比1500那么VB那就好比是个smart。(C#可能是个1200)。我们这些攻城狮用上高级语言基本也都是小应用,所以Smart这个级别基本足够,太复杂的还是交给程序猿吧。所以我一直习惯用VB开发小程序,相比C++快多了特别开发桌面窗口应用。前些天论坛看到大家都在用C#和smart做通讯,今天趁空闲时间我尝试了用VB做了个Demo和smart做通讯,还是觉得很方便。所以VB还未被淘汰,VB还能战!下面是Demo的流程,希望对有大家有所帮助。另外如果有其他问题也欢迎交流!     

     先说说我的开发环境 VS2017,库文件是群友提供的。看介绍是这是GitHub上的一个开源代码,而且还还在持续更新!https://github.com/S7NetPlus/s7netplus

S7.NET说明书.pdf

S7.Net.dll.zip


新建一个VB桌面应用后,首先引用DLL文件。


设计一个简单的窗口,我的smart里面连接了一个伺服。所以我设计了一个简单的伺服调试窗口,主要是显示位置和速度,然后轴使能,正向连续移动和负向连续移动。

下面设计代码,导入S7.NET命名空间。申明一个PLC类型的变量。SmartPLC使用S71200类型,设置好smart的IP地址。就可以打开连接了,使用OpenAsync()异步通讯连接PLC,如果用Open打开需要考虑到冲突。

设计一个Timer定时器循环读取当前位置速度,还有伺服轴使能状态。注意Read读到的结构是一个Uint数据类型,需要转换成INTC#就比较方便。而VB我用了BitConverter函数转换。如果你有更方便的方法也可以交流一下。轴当前使能因为我的PN伺服 我读的是Input信号。使用BIT类型读取,实际是以8个BIT的BitArray数据类型读取。


三个按钮:使能按钮做成置位取反方式。JOG移动按钮做成点动方式,都是直接写入的M位

打开From开始打开PLC,如果正常的话,就打开Timer定时读取状态。From关闭PLC

最后运行程序,就能操作伺服啦。

咋样VB还是很方便的,而且代码大家应该都一看就明白。如果自己没有HMI需要测试smart的时候,自己写个HMI也很很容易的,到时候找些仪表按钮控件。做个好看的界面也是分分钟的事儿!来吧觉得有用的就点赞吧


【征文】VB还未淘汰!VB使用S7.NET与smart200通讯 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3227条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。