继续揭秘PLC,今天我们聊聊RTS的服务。服务有很多种,其最主要的任务是给用户提供调试接口的,相当于MCU的JTAG功能。Codesys有个比较实用的功能,代码编译好后,可以不连PLC实物直接在电脑端做仿真,手动测试验证逻辑。

这个功能类似于MDK和IAR里的Simulator功能,不接MCU直接跑逻辑。

当用户再点击Codesys在线菜单栏下的登录按钮后,首先Codesys会发送CheckID的命令码去检查板子返回的Target ID是否能于当前软件设置的Target匹配,下一步就是发送Stop命令关闭IEC运算(MCU版本的Codesys通常不支持在线下装,MPU版本的在线下装不需要停止IEC运算),然后检查PLC当前的IEC用户代码的识别码与Codesys工程是否一致,如果不一致则Codesys会提示用户这是一个新的工程,是否下载到PLC中,用户确认后会进入下载用户工程模式,将之前Codesys编译的bin文件下载到对应的Flash区域,之后下载IO的配置信息。

所有的服务,都是基于一种通讯协议基础上的,Codesys的协议是私有的,但是可以通过抓包来做简单的分析,有代码可以对照着分析,没有源代码估计是很难理解的,其支持的协议也很多:CAN, RS485,Ethernet等

用户可以通过在线->通讯参数进行设置。

用户成功登录后,会进入登录模式,下图为和利时LM系统小型PLC的示例代码仿真模式:

而服务包括下图所有的一些功能:

下表总结了常用的一些功能:

服务 描述
运行 登录后的运行状态其实是根据RTS来设置的,一般都会设置为下载后自动运行。
停止 当用户需要停止IEC运算时,可以点击停止按钮,此时IEC运算会停止,但是IO配置区的数据会一直刷新
断点 类似与MCU调试的断点,当代码执行到断点未知后会暂停运算
跳过 相当于MDK中的F10,单步跳过
跳入 相当于MDK中的F11,单步跟入
单循环 IEC运算仅运行1个周期后停止
读变量 这个服务不存在于菜单中,但它一直被执行,Codesys需要读取N, M, I, Q, R, Code任何区数据时,都会发送该服务
输入值 用户在登录模式下,可以对变量/IO输出通道数据进行在线修改
强制值 类似于输入值服务,但是输入值是1次的,强制值是每周期都会执行,所以看上去这个数据/变量是不变的
解除强制 释放之前强制的变量

登录模式后可以在PLC配置界面看到所有通道的数据值,也可以通过双击小方块来写入变量:

这个功能类似于MDK查看外设寄存器的功能,需要修改的时候直接写Value即可:

Beremiz也提供了类似服务功能,但要弱很多,这里就不做展开。BTW,这个开源软件Bug还是比较多的,而且很久也没有发展起来,拿来学习分析还是有价值的,商业化可能还需要付出更大的努力。下一期应该是PLC专辑的最后一期了,我们聊聊背板总线,主要介绍Profibus-DP。

未完待续

揭秘PLC(四)RTS之服务篇相关推荐

  1. 揭秘PLC(三)RTS之IO篇

    揭秘继续,上一期我们介绍了PLC设备端的程序RTS与PC端编译的用户程序之间的交互的核心:双方定义好相同的含有函数指针的结构体,通过ld连接文件将其定义到固定的地址上去执行. 今天我们探究下PLC R ...

  2. 揭秘PLC(五)RTS之扩展通讯

    揭秘PLC(五)RTS之扩展通讯 之前有朋友问过这样一个问题,遇到一个新项目/行业,到底是选择MCU还是PLC来实现,我觉得在PLC能够满足要求的前提下,项目初期非常合适使用PLC做评估验证,当产品定 ...

  3. RHEL 5服务篇—使用Apache搭建web服务(四)部署AWStats网站分析系统

    在httpd服务器的访问日志文件access_log中,记录了大量的客户机访问信息,通过分析这些信息,可以及时了解web站点的访问情况.但是由于access_log文件记录的信息太多,查看起来很不方便 ...

  4. IT培训行业揭秘(四)

    本博客转载自:IT培训行业揭秘(四) - Rocky Ren,已经征得原作者的同意! --分割线-- IT培训班的老师前面已经说过,很多都是从一线程序员岗位转过来的,因为培训行业的收入整体上来看还是比 ...

  5. Java微服务篇1——SpringBoot

    Java微服务篇1--SpringBoot 1.什么是springboot 1.1.Spring出现的问题 Spring是Java企业版(Java Enterprise Edition,JEE,也称J ...

  6. 源于零售业,如何赋能零售业?亚马逊云科技再发布四项新服务

    在全球范围持续的疫情深刻影响了零售业的方方面面. 亚马逊云科技全球零售行业市场战略负责人Tom Litchford向TechWeb表示,"在疫情之下,更多的零售企业意识到自己的数字资产或者数 ...

  7. plc实验报告流程图_中南大学plc实验报告(共6篇).docx

    中南大学plc实验报告(共6篇) 中南大学 <电气控制及PLC应用技术> 设计报告 设计题目邮件分拣机控制系统设计指导老师张涛吴同茂设计者张黎专业班级测控12级01班设计日期XX年7月 目 ...

  8. 【高德地图API】从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索

    原文地址为: [高德地图API]从零开始学高德JS API(四)搜索服务--POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索 摘要:地图服务,大家能想到哪些?POI搜素,输入提示,地址 ...

  9. 【Linux】循序渐进学运维-服务篇-LNMP环境部署

    文章目录 前言 一. LNMP的介绍 二. 什么是Fast-CGI 三. 部署实战 1. 安装php和mysql 2. nginx和php的结合 a. 编译nginx b. 配置nginx与php的结 ...

最新文章

  1. 处理器解决物联网和人工智能的融合
  2. 帮AI摆脱“智障”之名,NLP这条路还有多远?
  3. 【强烈推荐】清华大学刘洋老师【浅谈研究生学位论文选题方法】讲座
  4. 转:Git_Windows 系统下Git安装图解
  5. Magicodes.WeiChat——媒体资源选择组件之media-choice(开源)
  6. 递归神经网络预测股票好文章
  7. mongodb 监控权限_分布式监控系统Zabbix3.4-针对MongoDB性能监控操作笔记
  8. Python RE模块中search()和match()的区别
  9. java单点登录需求分析与代码实现
  10. docker与宿主机通信
  11. App在后台被杀死后重启-重进首页方法
  12. 通过ICursor对Table进行操作(添加、修改、删除)
  13. Windows上CLion配置和使用教程
  14. 用户画像:标签化就是数据的抽象能力
  15. 【技术推荐】WebLogic 反序列化漏洞深入分析
  16. 利用Sympy计算sin1°的最小多项式
  17. 王小云院士真地破解了MD5吗
  18. c++数独游戏3.2
  19. 前端--小程序的学习(一)
  20. JuiceFS:写流程源码解析+刷盘+数据一致性分析

热门文章

  1. echarts人体含水量(象形柱图)更改SVG(性别占比或其他占比百分比)
  2. html输入QQ自动获取QQ头像,QQ号头像名称信息自动获取插件[WordPress] | 贝贝吧
  3. 正则表达式 - (?!), (?:), (?=)
  4. 阿里测试7年经验,从功能测试到自动化测试,我整理的超全学习指南
  5. 好的售前解决方案需要这样写
  6. android6.0 全局4k,Android6.0全局4K大法好?索尼Z5P升级体验
  7. 【2013Esri中国用户大会】商业智能位置分析之Esri Maps for Cognos
  8. Gateway+Nacos+Sleuth+Zipkin网关链路追踪(测试及源码),Gateway+FeignClient+Nacos通过网关远程调用微服务(一)
  9. 计量经济学第六版第三章计算机答案,计量经济学第3章计算机习题
  10. 道闸系统临时服务器什么意思,停车场管理系统常见问题解答