电子开发 | 基础入门 | 电路原理图 | 姊舰鍥惧疄渚� | PLC鍩虹   銆婂鏋滃枩娆㈡湰绔欙紝璇锋寜 Ctrl+D 鎵嬪姩鏀惰棌锛佹劅璋㈡偍鐨勬敮鎸併€�涓€璧峰涔犱竴璧疯繘姝ワ紝鐢靛瓙寮€鍙戠帇娆㈣繋鎮紒.

电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册

鈽呯數璺叕寮忔墜鍐岋紝鏈€鏂扮増銆婄數瀛愮數璺叕寮忚绠楀櫒銆嬶紝鐢佃矾鍏紡鏌ヨ鎵嬪唽 鐢佃矾鍏紡璁$畻鍣ㄣ€愮數瀛愪粠涓氫汉鍛樺繀澶囨墜鍐屻€�
鈽嗗崄澶╁浼氬崟鐗囨満瀹炰緥100 c璇█ chm鏍煎紡銆傝祫鏂欏唴瀹硅缁嗭紝瑕嗙洊渚嬪瓙澶氾紝鍐呭骞裤€愮數瀛愪粠涓氫汉鍛樺繀澶囨墜鍐屻€�
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> 梯形图实例 >> 正文

主站从站实例_两台西门子plc S7-200实现MODBUS RTU通讯_mbus_init指令说明

作者:佚名    文章来源:本站原创    点击数:6314    更新时间:2023/3/5

两台S7-200通过Modbus实现通讯

从站设置:

需要使用MBUS_INIT、MBUS_SLAVE即可;

MBUS_INIT指令被用于启用和初始化或禁止Modbus通讯。(这一步在程序的前面,配置类的程序基本都放在程序前面)。在S7-200中,通讯的程序块调用都需要设定完成为,确保通讯的完整性,只有把完整的数据格式发送或接收,才可以实现通讯,因此完成位是必须要有的。在每次扫描且EN输入打开时执行该指令。应当在每次通讯状态改变时执行 MBUS_INIT指令。一般程序设计仅在首次扫描时执行。功能块图如下:

 

MODE:模式选择位,1表示将port0指定给Modbus协议并启用协议;0表示将port0指定给PPI;

!!!注意:指定给Modbus后,该端口不可以下载上传程序,因此在程序设计中,可以加入控制位,串联给I点即可,例程中未加入,可以自己尝试;

Addr:从站地址1~247;

Baud:波特率设置1200、2400、4800、9600、19200、38400、57600或 115200;

Parity:校验位0- 无校验,1- 奇数校验,2- 偶数校验;

Delay:时延,通过将指定的毫秒数增加至标准 Modbus信息超时的方法延长标准Modbus信息结束超时条件。该参数的典型数值在有线网络上应为 0。如果您在使用带有纠错功能的调制解调器,将时延设为50至100毫秒的数值。如果您在使用扩展频谱无线电,将时延设为10至100毫秒的数值。数值可以是0至32767毫秒。

MaxIQ:参数将供 Modbus地址 00xxxx 和 01xxxx 使用的I和Q点数设为0至128之间的数值。数值0禁止所有向输入和输出的读取。建议使用的MaxIQ数值是128,该数值可在S7-200中存取所有的I和Q点。

MaxAI:参数将供 Modbus地址 03xxx 使用的字输入(AI)寄存器数目设为0至32之间的数值。数值0禁止模拟输入的读数。建议使用的 MaxAI数值如下,这些数值可允许存取所有的S7-200模拟输入。0 用于 CPU 221,16 用于 CPU 222,32 用于 CPU 224、 226 和 226XM;

MaxHold:参数设定供 Modbus地址04xxx使用的V内存中的字保持寄存器数目。例如,为了允许主设备存取200字节的V内存,将MaxHold设为100个字的数值(保持寄存器);

HoldStart: 参数是V内存中保持寄存器的起始地址。该数值一般被设为VB0,因此 HoldStart 参数被设为&VB0(VB0地址)。其他V内存地址可指定为保持寄存器的起始地址,以便在项目的其他地方使用VB0。Modbus主设备可存取V内存MaxHold个字数,从 HoldStart开始。

Done:完成标志位;

Error:错误代码,字节;

MBUS_SLAVE 指令被用于为Modbus主设备发出的请求服务,并且必须在每次扫描时执行,以便允许该指令检查和回答Modbus请求。在每次扫描且EN输入开启时执行该指令。MBUS_SLAVE指令无输入参数。当MBUS_SLAVE指令对Modbus请求作出应答时, " 完成"输出打开。如果没有需要服务的请求时, "完成"输出关闭。"错误"输出包含执行该指令的结果。该输出只有在"完成"打开时才有效。如果"完成"关闭,错误参数不会改变。

 

通俗讲法:将程序写在这个地方就可以了。

测试Network程序:

 

主站设置:

主站的设置通过MBUS_CTRL和MBUS_MSG子程序实现通讯;

MBUS_CTRL如下

 

Mode模式:为 1 时,使能 Modbus 协议功能;为 0 时恢复为系统 PPI 协议

Baud波特率:支持的通讯波特率为1200240048009600192003840057600115200

Parity校验:校验方式选择

0=无校验

1=奇较验

2=偶较验

Timeout超时:主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000 毫秒(1 秒),允许设置的范围为 1 - 32767

注意: 这个值必须设置足够大以保证从站有时间响应。

Done完成位:初始化完成,此位会自动置1。可以用该位启动 MBUS_MSG 读写操作(见例程)

Error初始化错误代码(只有在 Done 位为1时有效):

0 无错误

1 校验选择非法

2 波特率选择非法

3 模式选择非法

MBUS_MSG:

 

EN使能:同一时刻只能有一个读写功能(即 MBUS_MSG)使能

注意:建议每一个读写功能(即 MBUS_MSG)都用上一个 MBUS_MSG 指令的 Done 完成位来激活,以保证所有读写指令循环进行(见例程)。

First读写请求位:每一个新的读写请求必须使用脉冲触发

Slave从站地址:可选择的范围 1 - 247

RW从站地址:0 读, 1

注意:

1. 开关量输出和保持寄存器支持读和写功能

2. 开关量输入和模拟量输入只支持读功能

Addr读写从站的数据地址:

选择读写的数据类型

00001 0xxxx - 开关量输出

10001 1xxxx - 开关量输入

30001 3xxxx - 模拟量输入

40001 4xxxx - 保持寄存器

Count数据个数

通讯的数据个数(位或字的个数)

注意: Modbus主站可读/写的最大数据量为120个字(是指每一个 MBUS_MSG 指令)

DataPtr数据指针:1. 如果是读指令,读回的数据放到这个数据区中

2. 如果是写指令,要写出的数据放到这个数据区中

Done完成位读写功能完成位

Error错误代码:

只有在 Done 位为1时,错误代码才有效

0 无错误

1 响应校验错误

2 未用

3 接收超时(从站无响应)

4 请求参数错误(slave address, Modbus address, count, RW

5 Modbus/自由口未使能

6 Modbus正在忙于其它请求

7 响应错误(响应不是请求的操作)

8 响应CRC校验和错误

-

101 从站不支持请求的功能

102 从站不支持数据地址

103 从站不支持此种数据类型

104 从站设备故障

105 从站接受了信息,但是响应被延迟

106 从站忙,拒绝了该信息

107 从站拒绝了信息

108 从站存储器奇偶错误

常见的错误:

  • 如果多个 MBUS_MSG 指令同时使能会造成 6 号错误
  • 库存储区被程序其它地方复用,有时也会造成6 号错误
  • 从站 delay 参数设的时间过长会造成主站 3 号错误
  • 从站掉电或不运行,网络故障都会造成主站 3 号错误

例程:

 

 

 

 


Tags:MBUS_INIT,指令,西门子plc,s7-200  
责任编辑:admin
请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
1分 2分 3分 4分 5分

还可以输入 200 个字
[ 查看全部 ] 网友评论
    没有任何评论
推荐文章
鐢靛瓙寮€鍙戠綉锛氭眹闆嗙患鍚堝悇绫荤數瀛愬埗浣滀笌鐢佃矾鍥剧殑缃戠珯锛宲lc宸ユ帶鎶€鏈�,妯$數鏁扮數鐭ヨ瘑,鍗曠墖鏈篍DA绛夌瓑锛佽崯钀冪數璺浘缃戠珯绮惧崕锛屼负宸ョ▼甯堝垱閫犱环鍊笺€傛杩庡叧娉ㄥ井淇″叕浼楀彿锛氱數瀛愬紑鍙戠綉锛�
最新推荐
璧勬枡鍖呬笅杞�
 [闂佸憡顨嗗ú婊勬櫠閺嶎厼瀚夊Δ锕佹硶閵堫偊鏌¢崒锔藉]闂佸憡銇炵粈渚€濡垫径灞稿亾濞戝磭绱扮紒鍙樺嵆瀹曪繝寮撮悩宸毈闂佸搫鐗嗛幖顐︽偪閸曨剛鐟归柨鐕傛嫹100 c闁荤姴娴勯幏锟�
 [闁哄鍎愰崹顖氣枎閵忋垻灏甸柨鐕傛嫹]婵炴垶鎸搁ˇ瀹犮亹缁€鐑睠闁诲孩鍐荤紓姘卞姬閸曨剛顩烽悹鎭掑妽閸╁倿寮堕悜鍡楃仧婵炲棭鏁-TR
 [闂佹椿婢€缁插鎯岄悙顒傤浄閻犳亽鍔嶉崺鍌炴偣娴g懓绀冩い鎿勬嫹]LM324闁哄鏅滈崝鏍棘閿燂拷4~20mA闁哄鍎戦幏锟�1~5V闂佹眹鍨归悘姘辩矈閿燂拷
 [闂佹椿婢€缁插鎯岄悙顒傤浄閻犳亽鍔嶉崺鍌炴偣娴g懓绀冩い鎿勬嫹]LM386婵$偛婀辩划顖炴倵椤掍焦濯撮柟鎹愵嚙椤斿﹪鏌涜箛鎿冨剶妞ゃ儲鎹囧銊╁箚瑜嬫禍锝夋煕閿濆啫濡奸悽顖ゆ嫹
 [闂佹椿婢€缁插鎯岄悙顒傤浄閻犳亽鍔嶉崺鍌炴偣娴g懓绀冩い鎿勬嫹]936闂佺粯甯掗敃銈堛亹閹绢喗鍋ㄥù锝呭暟閻斿懘鏌涘Ο鐓庢灁闁诡喖锕畷鍫曟晸閿燂拷
 [闂佸憡顨嗗ú婊勬櫠閺嶎厼瀚夊Δ锕佹硶閵堫偊鏌¢崒锔藉]闁烩剝甯掗幊搴ㄦ晬閹邦兘鏋栭柕蹇ョ磿閵堟挳鎮归悮瀛樺+濠电偞鎸撮弲娑氣偓鐧告嫹+闂佺缈伴崕鎾敆閻斿吋鍎嶉柛鏇ㄥ亜缁€锟�
 [闂備緡鍋呭銊╁极閵堝鍋ㄩ梻鍫熺〒閹藉秹鎮规担鐟扮妞ゆ挸鎲″ḿ顏堫敍濞嗘劦鍋�]S7-200PLC闂佹眹鍔岀€氼亞鎸掗姀銈嗗剳闁绘梹妲掗幏顐⒚归悪鍛 S7_2
 [闁哄鍎愰崹顖氣枎閵忋垻灏甸柨鐕傛嫹]S7-200闁圭厧鐡ㄩ幐濠氬几閸愨晝顩烽悹浣告贡缁€鍕煕韫囷絿鍘滅紒鎲嬫嫹,STEP7
 [闁哄鍎愰崹顖氣枎閵忋垻灏甸柨鐕傛嫹]ModbusPoll闂佸憡绮岄鐖媎busSalve闂佺ǹ楠忛幏锟�
 [闁哄鍎愰崹顖氣枎閵忋垻灏甸柨鐕傛嫹]STEP7濠碘槅鍨崜婵堚偓姘懇閺屽矁绠涢弬璺ㄦ▌婵炲濮伴崐鏇犺姳閿燂拷 Smart_
 [闁哄鍎愰崹顖氣枎閵忋垻灏甸柨鐕傛嫹]Modbus闁荤姴顑呴崯鎶芥儊椤栨粌鍨濋柛鎾楀倻瑙� v1.024 缂傚倷绶ら幏锟�
 [闁哄鍎愰崹顖氣枎閵忋垻灏甸柨鐕傛嫹]Modscan32闂佸憡绮岄鐖媎sim32,modb
 [闂佹椿婢€缁插鎯岄悙顒傤浄閻犳亽鍔嶉崺鍌炴偣娴g懓绀冩い鎿勬嫹]89c51闂佺ǹ绻愰ˇ閬嶆偟濞戙垹妫橀梺顐g闂嗗綊鏌i鍡楁珢缂佽鲸鐛otues
 [闂佹椿婢€缁插鎯岄悙顒傤浄閻犳亽鍔嶉崺鍌炴偣娴g懓绀冩い鎿勬嫹]婵炴垶鎸稿ú銈夊礋妤e啫鍌ㄩ柛鐐村Оotues婵炲濮惧▔鏇烇耿閿涘嫮鐭欓悗锝庝簽绾板秵绻濊閸旀鎮ラ敓锟�
 [闂佹椿婢€缁插鎯岄悙顒傤浄閻犳亽鍔嶉崺鍌炴偣娴g懓绀冩い鎿勬嫹]51闂佸憡顨嗗ú婊勬櫠閺嶎厼瀚夐柛婵嗗閸у﹦绱掔€h埖瀚� protues婵炲濮惧▔鏇烇耿閿燂拷
鏈€鏂版枃绔�
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询