电子开发 | 基础入门 | 电路原理图 | 濮婎垰鑸伴崶鎯х杽娓氾拷 | PLC閸╄櫣顢�   閵嗗﹤顩ч弸婊冩灘濞嗐垺婀扮粩娆欑礉鐠囬攱瀵� Ctrl+D 閹靛濮╅弨鎯版閿涗焦鍔呯拫銏″亶閻ㄥ嫭鏁幐浣碘偓锟�娑撯偓鐠у嘲顒熸稊鐘辩鐠х柉绻樺銉礉閻㈤潧鐡欏鈧崣鎴犲竾濞嗐垼绻嬮幃顭掔磼.

电子开发网

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

閳藉懐鏁哥捄顖氬彆瀵繑澧滈崘宀嬬礉閺堚偓閺傛壆澧楅妴濠勬暩鐎涙劗鏁哥捄顖氬彆瀵繗顓哥粻妤€娅掗妴瀣剁礉閻絻鐭鹃崗顒€绱¢弻銉嚄閹靛鍞� 閻絻鐭鹃崗顒€绱$拋锛勭暬閸c劊鈧劗鏁哥€涙劒绮犳稉姘眽閸涙ê绻€婢跺洦澧滈崘灞烩偓锟�
閳藉棗宕勬径鈺侇劅娴兼艾宕熼悧鍥ㄦ簚鐎圭偘绶�100 c鐠囶叀鈻� chm閺嶇厧绱¢妴鍌濈カ閺傛瑥鍞寸€圭顕涚紒鍡礉鐟曞棛娲婃笟瀣摍婢舵熬绱濋崘鍛啇楠炶¥鈧劗鏁哥€涙劒绮犳稉姘眽閸涙ê绻€婢跺洦澧滈崘灞烩偓锟�
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> 梯形图实例 >> 正文

基于S7-200 SMART实现MATLAB写入与读取PLC数据_matlab

作者:佚名    文章来源:网络整理    点击数:461    更新时间:2024/12/29

关键字:S7-200 SMART;Modbus TCP;MATLAB。

系列文章目录

基于S7-200 SMART实现一键启停
顺序功能图——(二)设计机组延时关机程序
基于S7-200 SMART实现Modbus TCP通信



前言

  提到PID控制,不知道各位第一个想到的相关实现软件是什么,反正博主第一个想到的是MATLAB,不过这都是因为在过去的学生时代接触这个最多。相信基于PID的控制理念,不论是C++/C#还是Python基于这些高级语言很多软件都能实现PID控制。不过在工作以后在过程控制或是运动控制PLC的使用十分广泛,一些PLC也集成了PID控制的功能例如S7-200 SMART
  随着时代的发展越来越多不同的PID控制也被运用到工程中——模糊PID控制专家PID控制神经网络PID控制差分进化PID控制,他们是智能控制中专家控制模糊控制神经网络控制优化算法控制的发展的结果,虽然优势明显,但仅凭PLC难以实现,往往需要PC中的其他软件进行辅助。因此实现PC软件如MATLAB与PLC之间的通信就是十分必要的。


一、Modbus TCP

  Modbus TCP是一种通信协议,支持这种通信协议的设备只需要通过以太网就可以实现通数据传输,基于此通信协议,可以通过一根网线实现PC与PLC之间的数据处理,本文不会对Modbus TCP做重点介绍,需要学习的小伙伴可以走传送门——带你玩转modbusTCP通信。

二、总体环境介绍

  以下的案例基于:

  • PC操作系统:WIN11
  • PLC:S7-200 SAMRT CPU ST60
  • 通信介质:普通网线一根
  • PLC编程软件:STEP 7-Micro/WIN SMART V2.8
  • MATLAB:R2019a

三、PLC中搭建服务端

  在基于S7-200 SMART实现Modbu TCP通信一文中博主详细介绍了基于S7-200 SMART搭建Modbus TCP服务端的搭建过程,这里只进行简单介绍,需要重温的小伙伴请走传送门。
 

图3.1 在PLC中搭建Modbu TCP服务端

  设置端口号:502,保持寄存器包括从VB10000开始向后的1000个V寄存器。

四、Matlab中搭建客户端

  在Matlab中已经集成好了Modbus通信需要的各种功能,这点十分方便,我们可以使用封装好的函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
clc
clear all;
%创建modbus连接对象
mb = modbus('tcpip','192.168.2.1',502);
%通信延时2s
mb.Timeout = 2;
for i=1:1:1000
%读取数据
data = read(mb,'holdingregs',1,10,'int16');
%写入数据
write(mb,'holdingregs',1,[data(1)+1 data(2)+1 data(3)+1 data(4)+1 data(5)+1 data(6)+1],'int16');
%表示暂停0.1s
pause(1/10);
end
%断开并清除modbus对象
clear mb

其中

1
mb = modbus('tcpip','192.168.2.1',502);

用于生成一个Modbus对象,比较像面向对象编程中类的实例化。第一个参数表示是Modbus TCP通信,第二个参数表示服务端的IP地址(PLC的IP地址),第三个参数表示端口号。

1
mb.Timeout = 2;

用于设定Modbus对象的通信时间,超过此时间还未建立通信连接则认为通信失败。

1
data = read(mb,'holdingregs',1,10,'int16');

用于读取数据并反回到一个变量里。第一个参数表示是通过mb对象读取数据,第二个参数表示读取保持寄存器数据,第三个参数表示从第一个地址开始读取,第四个参数表示读取10个数据,第五个参数表示以int16类型的数据保存到data中。如果需要读取的数据有多种类型也可以写成如下形式:

1
2
data = read(mb,'holdingregs',1,[5,2,3],{
<!-- -->'int16','uint32','double'});
1
write(mb,'holdingregs',1,[data(1)+1 data(2)+1 data(3)+1 data(4)+1 data(5)+1 data(6)+1],'int16');

用于写入数据。第一个参数表示是通过mb对象写入数据,第二个参数表示写入保持寄存器数据,第三个参数表示从第一个地址开始写入,第四个参数表示写入的六个数据,第五个参数表示以int16类型的数据保写入。

1
clear mb

用于清除Modbus对象。

五、运行结果

  可以看到运行结束后再PLC的V寄存器中VW10000~VW10010都比原来的值累加了1000,而且再MATLAB的工作区也得到了反应,值得一提的是,MATLAB的工作区不会实时更新数据,只有在程序运行完成后可以查看到运行的结果。
 

图5.1 在PLC中的通信结果

  
图5.2 在Matlab中的通信结果


总结

  本文实现了S7-200 SMART与PC端Matlab的Modbus TCP通信,通过Matlab读取与写入了V区寄存器。


Tags:MATLAB,200smart,读取PLC数据  
责任编辑:admin
请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
1分 2分 3分 4分 5分

还可以输入 200 个字
[ 查看全部 ] 网友评论
    没有任何评论
推荐文章
閻㈤潧鐡欏鈧崣鎴犵秹閿涙碍鐪归梿鍡欐偅閸氬牆鎮囩猾鑽ゆ暩鐎涙劕鍩楁担婊€绗岄悽浣冪熅閸ュ墽娈戠純鎴犵彲閿涘lc瀹搞儲甯堕幎鈧張锟�,濡紕鏁搁弫鎵暩閻儴鐦�,閸楁洜澧栭張绡岲A缁涘鐡戦敍浣藉疮閽€鍐暩鐠侯垰娴樼純鎴犵彲缁儳宕曢敍灞艰礋瀹搞儳鈻肩敮鍫濆灡闁姳鐜崐绗衡偓鍌涱偨鏉╁骸鍙у▔銊ヤ簳娣団€冲彆娴兼褰块敍姘辨暩鐎涙劕绱戦崣鎴犵秹閿涳拷
最新推荐
鐠у嫭鏋¢崠鍛瑓鏉烇拷
 [闂傚倸鍊风粈渚€骞夐敓鐘偓鍐幢濡炴洖鎼オ浼村礋椤掍胶褰块梻浣告惈缁嬩線宕㈤懖鈹惧亾濮橆剦妲搁摶鏍煥閺囨氨鍔嶇痪顓炵埣閺屾洟宕奸顫枈闂佸搫鐭夌换婵嗙暦閹烘鏅滈柦妯侯樈娴硷拷]闂傚倸鍊风粈渚€骞夐敓鐘参﹂柣鎰暩閻棗銆掑锝呬壕婵犵鈧磭浠涚€垫澘瀚禒锔剧矙婢剁ǹ顥氭繝鐢靛仦閸ㄧ數澹曢鐘愁潟闁规鍠氱壕濂告煕濞嗘兎顏勭暤閸℃瑢鍋撶憴鍕┛缂佺粯绻傞锝夊箻椤旇棄浜归悗鐟板閸犳袙閸儲鈷掑ù锝呮啞閹牓鏌eΔ鈧Λ婵嬬嵁閺嶎収鏁冮柨鏃囨娴犻箖姊洪崨濠冨闁告挻鐩幃鐤亹閹烘挾鍙嗛梺缁樻礀閸婂湱鈧熬鎷�100 c闂傚倷娴囧畷鍨叏閺夋嚚褰掑礋椤栨氨顔嗛梺璺ㄥ櫐閹凤拷
 [闂傚倷绀侀幖顐λ囬柆宥呯?闁圭増婢橀崹鍌涖亜閺嶃劌鐒归柡瀣叄閺屾洝绠涚€n亞浼勯柣蹇撶箳閺佸寮婚妸鈺傚亞闁稿本绋戦锟�]濠电姷鏁搁崑鐐哄垂閸洖绠伴柟闂寸蹈閸モ斁鍋撻崷顓炐炲ù婊冩贡缁辨帡鍩€椤掑嫭鍊婚柣顐ゅ█濮婅櫣鎷犻幓鎺濆妷闂佸憡鍔樺畷鐢垫閹炬剚娼╅柛妤冨仜琚i梻浣告啞濞诧箓宕滃☉鈧偓鍛存倻閼恒儱浠梺璇″幗鐢帗淇婃禒瀣厱闁宠桨绀侀埀顒€鐏濋锝夊醇閺囩喎鈧鏌涢埄鍐炬畼濞寸姍鍐f斀闁绘劕寮堕敍宥夋煛娓氬洨鍘�-TR
 [闂傚倸鍊烽悞锕€顪冮崹顕呯唵闁逞屽墰缁辨帡骞撻幒婵堝悑闂佽鍨伴惌鍌炲箖濞嗘搩鏁嗛柛灞诲€栫粊顐︽⒑閼姐倕校濞存粈绮欏畷婵嗩吋婢跺﹥妲梺绋跨灱閸嬬偤宕戦敐鍚ゅ綊鏁愰崶銊ユ畬缂備讲鍋撻柛鎰ㄦ杺娴滄粓鏌熼崹顔碱仾閻庢熬鎷�]LM324闂傚倷绀侀幖顐λ囬锕€鐤炬繝濠傜墕缁€澶愭煛瀹ュ骸骞栨俊顐o耿閺屻劑鎮ら崒娑橆伓4~20mA闂傚倷绀侀幖顐λ囬柆宥呯?闁硅揪绠戠粻顖炴煥閻曞倹瀚�1~5V闂傚倸鍊烽悞锕傛儑瑜版帒鍨傜憸鐗堝笚閸婅埖鎱ㄥΟ澶稿惈闁活厼鐗撻弻銊╂偆閸屾稑顏�
 [闂傚倸鍊烽悞锕€顪冮崹顕呯唵闁逞屽墰缁辨帡骞撻幒婵堝悑闂佽鍨伴惌鍌炲箖濞嗘搩鏁嗛柛灞诲€栫粊顐︽⒑閼姐倕校濞存粈绮欏畷婵嗩吋婢跺﹥妲梺绋跨灱閸嬬偤宕戦敐鍚ゅ綊鏁愰崶銊ユ畬缂備讲鍋撻柛鎰ㄦ杺娴滄粓鏌熼崹顔碱仾閻庢熬鎷�]LM386濠电姷顣槐鏇㈠磻濞戞﹫鑰块弶鍫氭櫅閸ㄦ繃銇勯弽顐沪闁稿﹤鐏氶妵鍕箳瀹ュ洤濡芥繝娈垮灡閹告娊寮婚悢鐓庣闁逛即娼у▓顓烆渻閵堝棙鐓ラ柨鏇ㄤ邯瀵鈽夊⿰鍛澑闂佺懓鐏濋崯顐﹀礈鐠轰警娓婚柕鍫濆暙閸旀粓鏌熼悷鐗堟悙妞ゆ洩缍佹俊鎼佸煛娴h櫣鏆伴柣鐔哥矊椤戝棛绮嬪澶嬫櫜濠㈣泛顑囬崢閬嶆⒑閹稿海绠撻柛鐕佸亝娣囧﹥绺介崨濠備缓濡炪倖鐗撻崐鏍偓姘炬嫹
 [闂傚倸鍊烽悞锕€顪冮崹顕呯唵闁逞屽墰缁辨帡骞撻幒婵堝悑闂佽鍨伴惌鍌炲箖濞嗘搩鏁嗛柛灞诲€栫粊顐︽⒑閼姐倕校濞存粈绮欏畷婵嗩吋婢跺﹥妲梺绋跨灱閸嬬偤宕戦敐鍚ゅ綊鏁愰崶銊ユ畬缂備讲鍋撻柛鎰ㄦ杺娴滄粓鏌熼崹顔碱仾閻庢熬鎷�]936闂傚倸鍊烽懗鍓佸垝椤栨粍鏆滈柟鐑橆殕閺呮繈鏌曢崼婵堝濞存粌缍婇弻鐔虹磼閵忕姵鐏嶉梺绋款儍閸斿矂婀侀梺鎸庣箓閹冲酣寮抽悢鍏肩厽闁哄倹瀵ч崵鍥煛鐏炲墽鈽夐摶锝夋煟閹惧啿顒㈤柣蹇庣窔濮婅櫣鎷犻垾铏亪闂佹寧娲︽禍婊堟偩閻戣棄閱囬柡鍥╁枑濞呫垽姊虹捄銊ユ珢闁瑰嚖鎷�
 [闂傚倸鍊风粈渚€骞夐敓鐘偓鍐幢濡炴洖鎼オ浼村礋椤掍胶褰块梻浣告惈缁嬩線宕㈤懖鈹惧亾濮橆剦妲搁摶鏍煥閺囨氨鍔嶇痪顓炵埣閺屾洟宕奸顫枈闂佸搫鐭夌换婵嗙暦閹烘鏅滈柦妯侯樈娴硷拷]闂傚倷鑳堕崕鐢稿礈濠靛牊鏆滈柟鐑橆殔缁犵娀骞栧ǎ顒€濡介柡鍜佸墴閺岀喖鏌囬敃鈧崢鎾煛鐎n偆澧甸柡灞炬礉缁犳盯濡疯閿涚喖姊洪棃娑氬闁瑰憡濞婇獮鍐亹閹烘挸浠忛柣搴㈢⊕閿氭い蹇ユ嫹+婵犵數濮烽弫鎼佸磻閻愬搫绠伴柟缁㈠枛閻ょ偓绻涢幋鐐茬劰闁稿鎹囬幆鍌炲川婵犲偆浼�+闂傚倸鍊烽懗鍫曘€佹繝鍕濞村吋娼欑壕鍧楁煙缂併垹娅橀柡浣告閺岋綁寮崹顔藉€梺绋块缁夊綊寮诲☉銏犲嵆闁靛ǹ鍎扮花鑽ょ磽娴f彃浜鹃梺璺ㄥ櫐閹凤拷
 [闂傚倸鍊搁崐椋庢閿熺姴纾婚柛娑卞弾濞尖晠鏌曟繛鐐珔闁哄绶氶弻鏇㈠醇濠垫劖效闂佺ǹ顑冮崝鎴濐潖婵犳艾閱囬柣鏃€浜介埀顒佸浮閺岀喖鎸婃径灞澭囨煙椤旀娼愰柟宄版嚇閹兘骞嶉鍛炲┑锛勫亼閸婃牠骞愰幖浣哥疅闁炽儳绻€缂傛碍銇勮箛鎾跺⒈闁轰礁绉电换娑㈠幢濡搫袝闂佺ǹ顑戦幏锟�]S7-200PLC闂傚倸鍊烽悞锕傛儑瑜版帒绀夌€光偓閳ь剟鍩€椤掍礁鍤ù婊呭仱楠炴劙骞掑Δ鈧~鍛存煏閸繃顥滈柛鎾村▕濮婅櫣绱掑Ο鐑╂嫻濠碘€冲级鐢繝鐛箛娑辨晝闁抽攱鑹剧紞濠囧箖椤忓牆宸濇い鏃傗拡娴硷拷 S7_2
 [闂傚倷绀侀幖顐λ囬柆宥呯?闁圭増婢橀崹鍌涖亜閺嶃劌鐒归柡瀣叄閺屾洝绠涚€n亞浼勯柣蹇撶箳閺佸寮婚妸鈺傚亞闁稿本绋戦锟�]S7-200闂傚倷绀佸﹢閬嶅储瑜旈幃娲Ω閳轰胶顔囨繝鐢靛У閼归箖宕欓悩缁樼厱闁硅埇鍔嶅▍鍥ㄣ亜閳哄啫鍘撮柟顔款潐閹峰懘宕ㄦ繝鍛攨缂傚倷璁查崑鎾绘煕閺囥劌鐏¢柣鎾存礋閻擃偊宕舵搴㈠仹闂佸憡蓱缁海妲愰幒妤€绠熼悗锝庡亜椤忥拷,STEP7
 [闂傚倷绀侀幖顐λ囬柆宥呯?闁圭増婢橀崹鍌涖亜閺嶃劌鐒归柡瀣叄閺屾洝绠涚€n亞浼勯柣蹇撶箳閺佸寮婚妸鈺傚亞闁稿本绋戦锟�]ModbusPoll闂傚倸鍊风粈渚€骞夐敍鍕灊鐎光偓閸曞灚鏅㈤梺缁樼墪閻涙矚usSalve闂傚倸鍊烽懗鑸电仚婵°倗濮寸换姗€鐛箛娑欐櫢闁跨噦鎷�
 [闂傚倷绀侀幖顐λ囬柆宥呯?闁圭増婢橀崹鍌涖亜閺嶃劌鐒归柡瀣叄閺屾洝绠涚€n亞浼勯柣蹇撶箳閺佸寮婚妸鈺傚亞闁稿本绋戦锟�]STEP7婵犵數濮烽。钘壩i崨鏉戝瀭妞ゅ繐鐗嗙粈鍫熺節闂堟稓澧愰柛瀣尭椤繈顢橀悩鍐叉珰闂備礁鎼懟顖炴儗娴h櫣涓嶆繛鎴欏灩濡﹢鎮归幁鎺戝闁宠鑻埞鎴︽倷瀹割喖娈舵繝娈垮枙閸楀啿鐣烽幇鏉垮嵆闁绘ê鎼皬闂備浇娉曢崳锕傚箯閿燂拷 Smart_
 [闂傚倷绀侀幖顐λ囬柆宥呯?闁圭増婢橀崹鍌涖亜閺嶃劌鐒归柡瀣叄閺屾洝绠涚€n亞浼勯柣蹇撶箳閺佸寮婚妸鈺傚亞闁稿本绋戦锟�]Modbus闂傚倷娴囧畷鍨叏閹绢噮鏁勯柛娑欐綑閻ゎ噣鏌熼幆鏉啃撻柛搴★攻閵囧嫰寮介妸褏鐓€闂佹悶鍔嶇换鍫ュ蓟濞戙垹绠绘俊銈傚亾闁稿﹨宕甸幉鎾晸閿燂拷 v1.024 缂傚倸鍊搁崐鎼佸磹妞嬪孩顐介柕鍫濐槸缁狀垶鏌ㄩ悤鍌涘
 [闂傚倷绀侀幖顐λ囬柆宥呯?闁圭増婢橀崹鍌涖亜閺嶃劌鐒归柡瀣叄閺屾洝绠涚€n亞浼勯柣蹇撶箳閺佸寮婚妸鈺傚亞闁稿本绋戦锟�]Modscan32闂傚倸鍊风粈渚€骞夐敍鍕灊鐎光偓閸曞灚鏅㈤梺缁樼墪閻涙硞im32,modb
 [闂傚倸鍊烽悞锕€顪冮崹顕呯唵闁逞屽墰缁辨帡骞撻幒婵堝悑闂佽鍨伴惌鍌炲箖濞嗘搩鏁嗛柛灞诲€栫粊顐︽⒑閼姐倕校濞存粈绮欏畷婵嗩吋婢跺﹥妲梺绋跨灱閸嬬偤宕戦敐鍚ゅ綊鏁愰崶銊ユ畬缂備讲鍋撻柛鎰ㄦ杺娴滄粓鏌熼崹顔碱仾閻庢熬鎷�]89c51闂傚倸鍊烽懗鑸电仚缂備胶绮崝娆掓闂備緡鍓欑粔鐢稿磻閻斿摜绠鹃柟瀛樼懃閻忊晜淇婇锝忚€挎慨濠冩そ椤㈡洟鏁愰崶鍓佷紘闂傚倸鍊稿Λ妤冪礊婵犲洤钃熼柨婵嗩樈閺佸倿鏌涢埄鍐炬畷闁绘縿鍨荤槐鎾存媴娴犲鎽甸梺缁樹緱濡叉籍tues
 [闂傚倸鍊烽悞锕€顪冮崹顕呯唵闁逞屽墰缁辨帡骞撻幒婵堝悑闂佽鍨伴惌鍌炲箖濞嗘搩鏁嗛柛灞诲€栫粊顐︽⒑閼姐倕校濞存粈绮欏畷婵嗩吋婢跺﹥妲梺绋跨灱閸嬬偤宕戦敐鍚ゅ綊鏁愰崶銊ユ畬缂備讲鍋撻柛鎰ㄦ杺娴滄粓鏌熼崹顔碱仾閻庢熬鎷�]濠电姷鏁搁崑鐐哄垂閸洖绠扮紒瀣紩濞差亜围濠㈣泛锕﹂ˇ鐗堜繆閵堝繒鍒伴柛鐕佸亰瀹曟帡濡搁埡鍌滃幈闂佺粯鍔栧ḿ娆掆叿otues濠电姷鏁搁崑娑㈩敋椤撶喐鍙忛柟顖嗏偓閺嬫牠鏌¢崶鈺佸壋闁兼澘娼¢弻銊モ槈濡警浼€闂佹椿鍘介悷鈺呭箖濡ゅ懏鏅查幖瀛樼箘閺佹牜绱掗悙顒佺凡缂佸鏁搁幑銏犫攽婵犲孩歇闂備礁鎲″褰掋€冩繝鍥х畺闁靛鏅滈弲鎼佹煥閻曞倹瀚�
 [闂傚倸鍊烽悞锕€顪冮崹顕呯唵闁逞屽墰缁辨帡骞撻幒婵堝悑闂佽鍨伴惌鍌炲箖濞嗘搩鏁嗛柛灞诲€栫粊顐︽⒑閼姐倕校濞存粈绮欏畷婵嗩吋婢跺﹥妲梺绋跨灱閸嬬偤宕戦敐鍚ゅ綊鏁愰崶銊ユ畬缂備讲鍋撻柛鎰ㄦ杺娴滄粓鏌熼崹顔碱仾閻庢熬鎷�]51闂傚倸鍊风粈渚€骞夐敓鐘偓鍐幢濡炴洖鎼オ浼村礋椤掍胶褰块梻浣告惈缁嬩線宕㈤懖鈹惧亾濮橆剦妯€闁哄本绋戦埞鎴﹀幢濡ゅ﹣鎮i梻浣侯潒閸愬灝濮涚紓浣介哺鐢偤鍩€椤掑﹦绉柛鈺傜墱閳ь剚鐔幏锟� protues濠电姷鏁搁崑娑㈩敋椤撶喐鍙忛柟顖嗏偓閺嬫牠鏌¢崶鈺佸壋闁兼澘娼¢弻銊╂偆閸屾稑顏�
閺堚偓閺傜増鏋冪粩锟�
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询