设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子S7-200SMART RS485 MODBUS 通讯
返回列表
发新帖
[西门子]
西门子S7-200SMART RS485 MODBUS 通讯
[复制链接]
62
|
0
|
2024-5-13 10:33:33
|
显示全部楼层
|
阅读模式
S7-200 SMART CPU模块均集成1个RS485接口,可以与变频器、触摸屏等第三方设备通信。如果需要额外的串口,可通过扩展CM01信号板来实现,信号板支持RS232/RS485自由转换。
串口支持下列协议:
• Modbus RTU
• USS
• 自由口通信
今天介绍S7- 200 SMART作为主站进行RS485 MODBUS 通讯。
一.打开STEP 7-MicroWIN SMART编程软件。
在左侧的项目树中找到“指令”->“库”->“Modbus RTU Master”,里面包含“MBUS_CTRL”和“MBUS_MSG”两个指令。
PS:对于单个 Modbus RTU 主站,使用指令 MBUS_CTRL 和 MBUS_MSG。对于第二个 Modbus RTU 主站,使用指令 MBUS_CTRL2 和 MBUS_MSG2。在项目中需要使用两个Modbus主站,需要确保MBUS_CTRL 和 MB_CTRL2 使用不同的端口号。
二.主站初始化
点击鼠标将MBUS_CTRL拖拽至主程序中
PS:程序中通讯的设备(仪表)波特率为9600,无校验;通过CPU集成通讯口通讯,超时时间为300毫秒。
EN:使能。
必须保证时刻接通。
Mode:模式。
为1时为Modbus通讯功能;为0时PPI协议。
1:Baud 波特率:
支持1200、2400、4800、9600、38400、57600、115200。波特率的设置必须与通讯设备的波特率一致。波特率越大,通讯速率越快,但通讯距离越短,受干扰的几率也越大,在通讯过程中常出现掉包现象。
2:Parity 校验方式:
0=无校验;1=奇校验;2=偶校验。校验方式的选择必须与通讯设备的校验方式一致。
3:Port 端口号:
0 = CPU 集成的 RS 485 通讯口 ;1 = CM 01 信号板。
4:Timeou 超时:
主站等待从站响应的时间,以毫秒为单位,一般设置为1000 毫秒,允许设置的范围为 1 - 32767。如通讯设备比较多,为加快其轮询速度,可将此时间缩小,但前提是保证从站能在此时间内,正常反馈数据。
5:Done 标志位:
初始化完成标志位,为1时说明初始化完成。
6:Error 错误代码:
0=无错误;1=校验错误;2=波特率错误;3=超时无效;4=模式错误;9=端口无效;10=CM 01 信号板缺失或未组态。
三.调用Modbus RTU 主站读写子程序
点击鼠标将MBUS_MSG拖拽至主程序
PS:程序表示当I0.0(运行信号)=1时,每0.5s将从40001数据地址开始读取从站设备(仪表)地址为1的35个数据,读取的数据将存储在从VB100开始的35个字节中。
EN:使能。
同一时刻只能有一个读写功能。
First:读写请求位。
每一个新的读写请求必须使用
脉冲
触发。
1:Slave 从站地址:
可选择的范围 1 - 247。理论上是可以通讯247台设备(仪表),但实际上与通讯的频率和数据长度是有很大关系的。
2:RW 读写请求:
0=读请求;1=写请求。
3:Addr 读写从站的数据地址:
通讯的设备(仪表)都有通讯规约,对其数据地址都有定义。下图中参数地址都是16进制地址(其他的设备(仪表)参数地址也是16进制的),需要转化成十进制。100A转成十进制为4106,则读写地址即为40001+4106=44107;100B转成十进制为4107,则读写地址即为40001+4107=44108;100C转成十进制为4108,则读写地址即为40001+4108=44109;在以后换算过程中将40001视为常数,无论什么参考地址换算成十进制后都要加40001,因为40001是保持寄存器的起始地址。
4:Count 数据个数:
通讯的数据个数(位或字的个数)。上图中如只需读取100A,则Count=1(字);如需读取100A、100B、100C,则Count=3(字)。程序中是将读取的数据存储在VB100开始的35个字节中。
5:DataPtr 数据指针:
如果是读指令,读回的数据放到这个数据区中;如果是写指令,要写出的数据放到这个数据区中。
6:Done 标志位:
读写功能完成标志位。
7:Error 错误代码:
只有在 Done 位为1时,错误代码才有效。0=无错误;1=响应校验错误;2=未用;3=接收超时(从站无响应);4=请求参数错误;5=Modbus/自由口未使能;6=Modbus正在忙于其它请求;7=响应错误(响应不是请求的操作);8=响应CRC校验和错误;101=从站不支持请求的功能;102=从站不支持数据地址;103=从站不支持此种数据类型;104=从站设备故障;105= 从站接受了信息,但是响应被延迟;106=从站忙,拒绝了该信息;107=从站拒绝了信息;108=从站存储器奇偶错误。
四.分配存储区
点击程序块,右击鼠标选择库存储器
点击“建议地址”可确保地址不重用,再点击“确定”,设置完成
至此Modbus主站通讯完成。本案例中只读取了一台设备(仪表 )的数据,在实际的项目中一般都会与好几台设备(仪表)通讯,就需要通过轮询程序实现不同设备(仪表)的数据读取或写入。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
工控分享
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』