当前位置:网站首页 > C++编程 > 正文

plc1200定时器的用法(plc10ms定时器)



西门子S7-1200通过通信板和通信模块可以进行Modbus RTU通信,PLC作为控制器,一般用作Modbus主站。当作为Modbus主站时,一般会对多个从站设备的参数进行轮询。本文介绍西门子S7-1200作为Modbus RTU主站时的定时轮询程序。

主要使用的硬件和软件

通信任务

程序思路

 要实现该功能,采用定时器轮询的方式来读写参数,其流程图如下所示。

PLC程序

在该程序中,使用FB块的方式进行封装,其用到的PLC变量、PLC数据类型、全局数据、FB接口如下所示。

上电初始化程序

将有效的工作模式改成4,也就是半双工(RS485)二线制模式

初始化Modbus组态端口,首次循环、硬件标识符、波特率、奇偶校验在形参中定义,MB_DB来自Modbus RTU主站的背景数据块。

定时器程序

定义100ms的定时器脉冲,该时间可根据Modbus主站读写的速度来调整。

计数器程序

定义计数器的值,通过定时器接通的信号,进行计数加1,当计数值大于等于任务数的时候,则复位计数值。这里的任务数是Modbus轮询时的任务数量,该程序中任务数4。

Modbus RTU主站通信

由于PLC数据类型(UDT)的数组是从0开始,所以对计数值进行减1操作

Modbus主站轮询的程序,定时器接通信号作为触发信号,输入数据和状态使用PLC数据类型(UDT),不同的任务使用索引来寻址。

OB中调用FB块

将该FB块在OB1中调用,并关联实参。

参数设置

在该项目中,需要完成5个任务(详见2. 通信任务),由于任务1和任务2不同时进行,则是4个任务进行轮询。其参数在全局数据块中进行设置,如图所示。

这里的从站地址、读写模式、数据地址、数据长度需要根据实际的任务进行设定。

对于其中的一个任务需求是,读和写进行分开,所以可以通过外部的条件修改模式和给定的值,如下图所示。

当需要写入参数时,给定一个写命令,也就是这里的“取料完成”信号。通过该信号,更改任务1(索引是0)的读写模式和值,当该任务完成或出错,复位该信号。

总结

以上就是该程序的全部内容。这种定时轮询的方式优点是就算其中一个设备出现故障,由于其定时轮询的方式,也不影响其它设备,适合从站的数据类似,读写的速度接近且不要求进行故障处理的场合。如果大家有更多关于Modbus的应用,欢迎留言交流。

来源:技成培训网,作者:刘郴,未经允许不得转载~

微信扫码免费领24小时VIP体验,可学习三菱/西门子/欧姆龙/汇川PLC、变频器/伺服、触摸屏、机器人、电工等精品视频课程。

到此这篇plc1200定时器的用法(plc10ms定时器)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • cpe1500(Cpe1500 表面活性剂)2026-02-21 11:54:07
  • msvcp140.dll丢失的解决方法(msvcp140.dll丢失的解决方法win7旗舰版)2026-02-21 11:54:07
  • sigmod会议日期(sigcomm会议)2026-02-21 11:54:07
  • c++单向链表类(c++单链表遍历)2026-02-21 11:54:07
  • 编程入门先学什么scratch(孩子编程入门先学什么)2026-02-21 11:54:07
  • cnn是什么意思英语(英文cnn什么意思)2026-02-21 11:54:07
  • msvcp140.dll无法继续执行代码(msvcp140.dll无法继续执行代码 需要重新安装程序吗)2026-02-21 11:54:07
  • 进程控制块pcb(进程控制块pcb的作用是什么)2026-02-21 11:54:07
  • can报文解析工具(can报文解析工具 PCan)2026-02-21 11:54:07
  • c++ ifstream头文件(c++头文件ifndef)2026-02-21 11:54:07
  • 全屏图片