当前位置: 首页 > news >正文

泰安外贸网站建设公司西安网站搭建建设定制

泰安外贸网站建设公司,西安网站搭建建设定制,花钱做网站要多少钱,仙居制作网站初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 不是教程,是避坑指…

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。


        不是教程,是避坑指南。使用了S7-200smart和S7-1200这两款PLC。

目录

什么是snap7

下载

编译

S7-200smart准备

IP要弄清楚

数据准备

使用Snap7采集S7-200smart

S7-1200准备

使用Snap7采集1200

交叉编译


什么是snap7

        snap7是个开源库,用来访问西门子PLC的S7协议,支持C/C++以及很多很多别的语言(别的是啥咱不关心)。

下载

        搜官网下载啦,很简单的。

编译

        下载过来的压缩包打开,进到build目录看,有说明文件,非常简单明了。(以后有闲可以整教程出来,不过真的很简单啊,我重点记录遇到的困难)

S7-200smart准备

IP要弄清楚

        设置IP并牢记。Setp7-micro/win smart的搜索功能不好用(这可能是操作系统加强了网络安全的原因)。通过IP能连接到PLC就算正常了。

数据准备

        200smart的数据区是V,snap7是不支持的。我的数据放在VB0和VB1,用HSL可以读取(虽然地址示例没有V,但是可以用),snap7没有对应的函数,所以创建了一个数据块。

        如何创建数据块:

        先连接PLC,底部状态栏显示PLC地址和“已连接”。左侧树,“数据块”,“插入数据页”,右侧下部“数据块”窗口,倒数第三个图标,像个“+R”的,“通过RAM创建数据块”,自动根据内存创建数据块,数据块索引究竟是0还是1不确定,没有地方设置,多尝试几个看看。创建完数据块要下载程序,然后把PLC设置为运行状态,然后就可以用读数据块的函数来读取数据了。

        下载程序之后读取数据一直不变,我还以为是静态的,看了一眼PLC发现处于暂停状态,启动之后就一切正常了。因为开始我有两个数据块所以后一个索引是1是可以理解的,但是删除前一个之后仍然是1(这也可以理解啊,固定坑位模式吧),所以这个不能猜,要靠试。

使用Snap7采集S7-200smart

        Snap7编译结果只有一个so,没有头文件。C++的包装文件是一对h和cpp,在代码示例里面,相同位置有个client的文件,是客户端的代码,把这三个文件拿去用就可以了。

        client.cpp有main函数,改个名就能合在自己的项目里面了。

        由于snap7并未明确支持S7-200smart,所以有点麻烦。

        实际测试发现参数要用(0,1)(机架号和槽位,下同),以及连接类型要设置为3(示例代码没有设置连接类型),不然可能无法连接。200smart其实是没有机架号和槽位参数的。

        HSL的200smart并不需要设置这些。C#就是强些(我现在同时用C++和C#,C#确实舒服很多啊,但是程序太大放不进设备,没办法)。

        实测连接类型为3,参数(0,0)和(0,1)正常,(0,5)和(1,0)则无法连接。

        实测参数(0,0),连接类型不设置无法连接,连接类型0、1、4无法连接,2、3正常连接。

        至于测试代码,除了client的测试,就是用了读数据块的函数。

S7-1200准备

        S7-1200连接比较容易,用正确的参数(0、1)直接就连上了(不正确连不上),但是读数据始终出错,HSL也报错,此时PLC里面还是原来的程序,看不太懂。然后下载了我自己的程序,读取指定的数据块,一样报错,这就抓狂了,看各种设置都正确的,却始终无法读取,最后搜到一个帖子说“恢复出厂设置能解决问题”,于是就恢复出厂设置,重新下载程序,一切OK了。

使用Snap7采集1200

        我的程序包含一个数据块,索引为2,总长度为26个字节。使用DBRead读取成功,数据都正确,但是要注意,数据块是有范围的,读取位置不能超出范围,否则失败。

        实测无需设置连接类型,或者设置为1、2、3(0或4就不行了,文档里说3-10都是“S7 basic”啊,当然0确实不是有效值)。

交叉编译

        交叉编译到arm64只需要把common.mk(build/unix下面)里面的指令换一下就可以了,很简单。arm v6、arm v7啥意思我不懂,我还是用的x86_64_linux.mk,实测程序正常运行。


(这里是结束)

http://www.yayakq.cn/news/431199/

相关文章:

  • 广州网站设计找哪里记事本做网站格式
  • 用手机做电影网站wordpress听说对百度不友好
  • 能答题做试卷的网站互联网+可以做什么项目
  • 怎么在企业站建立网站吗企业年报入口官网查询系统
  • 关于建设工程资料的网站线上营销的优势
  • 茶叶网站模板下载做企业规划的网站
  • 汕头市建筑信息网站青建设厅官方网站
  • 哪些网站可以用gif做头像文章类网站选什么内容
  • 电商网站建设信息无锡百度信息流
  • 购物网站后台好管理吗临沂画册设计公司
  • 编程网站scratch在线使用网站开发js不更新
  • 外贸企业公司网站建设大姨吗网站
  • 爬知乎文章做网站如何在手机上做微电影网站
  • 内网门户网站建设要求浙江省建设诚信系统网站
  • 网站建设空间域名是什么商城网站设计价格
  • 易云巢做营销型网站seo海外
  • 榆林做网站多少钱怎样做公司网页
  • 青岛开发区网站建设哪家好哪个网站做兼职可以赚钱
  • ipv6网站建设注册安全工程师的报考条件
  • 信阳网站建设信阳网络营销经典失败案例
  • 成都网站建设公司有哪几家如何取消网站备案号
  • 专业移动微网站设计海南 网站开发
  • 215专业品牌网站建设wordpress有什么缺点
  • 怎么查网站备案域名备案信息网站网站开发逻辑
  • 写网站论文怎么做网站建设需要什么格式的图片
  • 淄博网站制作网站功能列表
  • 河南郑州旅游网站制作富阳做网站的
  • 自己有域名要怎么制作网站ueditor解析wordpress
  • 苏州园区做网站公司汽车网站案例网页设计
  • 有没有免费网站空间苏州微网站建设公司哪家好