设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
基于S7-1200的Modbus RTU定时轮询程序
返回列表
发新帖
[西门子]
基于S7-1200的Modbus RTU定时轮询程序
[复制链接]
99364
|
0
|
2024-4-14 23:21:46
|
显示全部楼层
|
阅读模式
西门子S7-1200通过通信板和通信模块可以进行Modbus RTU通信,PLC作为控制器,一般用作Modbus主站。当作为Modbus主站时,一般会对多个从站设备的参数进行轮询。本文介绍西门子S7-1200作为Modbus RTU主站时的定时轮询程序。
1
主要使用的硬件和软件
2
通信任务
3
程序思路
要实现该功能,采用定时器轮询的方式来读写参数,其流程图如下所示。
4
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
参数设置
在该项目中,需要完成5个任务(详见2. 通信任务),由于任务1和任务2不同时进行,则是4个任务进行轮询。其参数在全局数据块中进行设置,如图所示。
这里的从站地址、读写模式、数据地址、数据长度需要根据实际的任务进行设定。
对于其中的一个任务需求是,读和写进行分开,所以可以通过外部的条件修改模式和给定的值,如下图所示。
当需要写入参数时,给定一个写命令,也就是这里的“取料完成”信号。通过该信号,更改任务1(索引是0)的读写模式和值,当该任务完成或出错,复位该信号。
6
总结
以上就是该程序的全部内容。这种定时轮询的方式优点是就算其中一个设备出现故障,由于其定时轮询的方式,也不影响其它设备,适合从站的数据类似,读写的速度接近且不要求进行故障处理的场合。如果大家有更多关于Modbus的应用,欢迎留言交流。
【建议收藏】超全西门子资料包限时免费下载!
2023-07-01
【免费领】电工电气线路与设备故障检修600例
2023-06-29
西门子S7-200SMART/1200/1500PLC程序案例,欢迎下载学习!
2023-06-26
西门子、三菱指令大全,集齐了才知道PLC编程这么容易!
2023-06-12
105张高清实物接线彩图,家装电路+工业电路,全覆盖!
2023-06-01
这64本西门子PLC必读书籍,少看一本都是遗憾!
2023-05-16
点个在看你最好看
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
aaaaabbbbb
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』