故事作者:liwenqun

最近创作

看看TA的故事

【西门子技术π-从S7-300400到S7-1500移植与更新替代】 ModbusAscii-LRC校验程序

已锁定

liwenqun

  • 帖子

    5350
  • 精华

    25
  • 被关注

    8

论坛等级:奇侠

注册时间:2003-06-06

普通 普通 如何晋级?

【西门子技术π-从S7-300400到S7-1500移植与更新替代】 ModbusAscii-LRC校验程序

1306

1

2020-08-13 18:37:36

1.应用的基本信息

   基本应用信息描述

  我在项目中是主要编程调试人员,现场调试中,经常碰到各种第三方产品使用MODBUS-Ascii协议。

Step7和博图软件中偏偏没有Modbus-Ascii协议的库和指令。

2.问题描述

    原S7-300程序中,使用指针ANY作为一个发送和接收数据的LRC校验的传递参数,在新的项目中想使用S7-1200/1500 变址寻址方式替代ANY作为变换发送和接收数据的LRC校验。

3.问题的分解和解决

3.1 问题分析

        由于MODBUS Ascii中发送和接收的都是Ascii字符,和1200/1500程序中的数据需要额外转换。比如设备地址1,需要转换为两个Ascii[30H+31H]。

        对于Int类型的数据则需要拆分高低位后转换为4个Ascii。

 3.2 问题处理

       使用Variant在读写参数时需要整体读回,然后修改某个变量后在写回,但是在读回再写时,原有变量发生变化。

       由于转换前后数据长度发生变化,使用Variant比较不方便。

        思考和测试后,决定使用Peek读取数据、Poke写入转换后的Ascii。

4.经验总结

4.1遗留的问题

       暂无

4.3 对S7-1500新功能或者更新替代的方式和方法的一些看法和建议

       在SCL中使用Peek需要指定读取的数据长度,例如Byte。而Poke指令不需要指定长度。

5.程序分享

       程序数据接口定义:

 

SCL程序

 


【西门子技术π-从S7-300400到S7-1500移植与更新替代】 ModbusAscii-LRC校验程序 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3237条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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