找回密码
 立即注册

QQ登录

只需一步,快速开始

工控课堂 首页 工控文库 PLC学习 查看内容

西门子S7200 PLC自由口通讯程序的设计方法(含源码)

2023-6-21 22:36| 发布者: 198366809| 查看: 2343| 评论: 0

摘要: 1、设置通讯参数:如果是集成在本机上基于RS485口,在SMB30中设置(prot0口);如果是采用通讯信号板,则在SMB130中设置(prot1口),这2个地址的设置,仅仅是对应的通讯口的不同,参数是相同的。2、定义接收信息的控制字节 ...

1、设置通讯参数:如果是集成在本机上基于RS485口,在SMB30中设置(prot0口);如果是采用通讯信号板,则在SMB130中设置(prot1口),这2个地址的设置,仅仅是对应的通讯口的不同,参数是相同的。

2、定义接收信息的控制字节,对于prot0口在SMB87;对于prot1口在SMB187中设置。

3、设置根据接收控制字节、通讯参数的通讯数据。

端口0:

SMB87/SMB88/SMW90/SMW92;

端口1:


SMB188/SMB189/SMW190/SMW192。

(根据协议用户自由选择)

4、设置通讯数据总字节数,SMB94/SMB194。(范围1~255)。

5、设置中断事件号、开中断。发送完成中断及接收完成中断。

6、启用发送指令XMT。

7、在发送完成中断里编写接收指令RCV;在接收完成中断里编写发送指令XMT。

假设:做这样一个例子,让西门子200smart PLC本机RS485口发送一串字符(siemens)到串口调试软件的信息接收区,串口调试软件的发送区发送一串(ni hao!)到200smart plc数据寄存器VB102开始的6个字节中,接收信息启用起始符、结束符方式。

做这个程序前先定义好一些通讯参数:(按上面的7点内容展开)

定义SMB30: 自由口通讯、频率9600、无校验,SMB30=16#09

定义SMB87: 启用接收信息控制、启用起始符、结束符,SMB87=16#E0

设置起始符: SMB88=16#3A(自由选取)

设置结束符: SMB89=16#0A(自由选取)

设置中断事件号: 发送完成中断事件号9;接收完成中断事件号23

开中断

在上述初始化程序中,启用发送指令,并编写相应的程序

定义好发送和接收数据的数据储存地址区

西门子S7-200 PLC专用无线通讯终端

了解详情点击下图

程序样例

1、通讯初始化子程序。

2、在发送完成中断中调用接收指令。

3、在接收完成中断中调用发送指令。

4、在主程序中调用通讯初始化子程序。

5、定义发送数据块数据:

(发送字符siemens: 16#73; 16#69; 16#65; 16#6D; 16#65; 16#6E; 16#73)在数据块中写入,其中VB0是发送数据字符的个数不参与通讯。

6、需要注意的一些问题:在“系统块”中设置“启动”项“cpu模式”为“RUN”并确定。

7、编译、保存用户程序,将程序下载到cpu中并运行cpu:创建一个便于观察的“状态图表”:将发送和接收的数据切换到ASCLL显示模式,并监控。

8、连接通讯电缆,打开串口调试软件,设置好于PLC通讯SMB30一致的通讯参数,并在数据发送区填写好等待发送的数据:由起始符开始......到结束符。

16#3A 16#6E 16#69 空格(占一个字符) 16#68 16#61 16#6F 16#21 16#0A

9、这时,只要我点击串口调试软件发送区的“手动发送”按钮,软件的接收区如果通讯正常就会显示“Siemens”的字符。

10、观察串口调试软件的接收区回传回来的siemens字符。

11、回过来观察PLC“状态图表”中的显示部分内容。

一个简单的数据发送和接收程序编写、调试已经完成。其他复杂的通讯都是基于这种模式编写的。无非就是教案或者数据格式等不一样。


关注公众号,加入500人微信群,下载100G免费资料!

最新评论

热门文章
关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-24 20:17 , Processed in 0.147849 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

返回顶部