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

电子开发网

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

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

组态王KingView 实测:西门子200PLC和组态王自由口通信

作者:佚名    文章来源:网络    点击数:351    更新时间:2024/8/17

这几天测试西门子200PLC和组态王自由口方式进行通信。

因为以前没做过这方面的通信,组态王也只熟悉一点,所以网上找点资料看看。

原以为很简单的通信,感觉就是触摸屏和PLC通信那样,简单配置一下参数:地址、波特率等。

现在看来还真是差不多,只是要看的资料很多,结合起来看,弄清楚两者之间的通信协议。

明白之后就很简单。

整理下测试程序和大家分享下,欢迎指导,学习,分享。


(1)下图是西门子200PLC编程软件STEP7的通信端口设置:和组态王里面设置要一致;

STEP7中设置plc的参数 


(2)下图是PLC编程 STEP7,需要下载亚控的一个初始化程序。

 


   测试程序如下:

 


   测试地址如下:

 


(3)下图是组态王KingView操作:

组态王KingView设备配置向导 


    和PLC中的一致:

组态王KingView设置串口 


   数据词典的操作

 


    定义变量:

 


  测试画面制作:

 



(4)下图是两者通信的截图:

 



 


(5)总结

组态王和200PLC之间协议

选取其中一点,这个没怎么看懂,欢迎大家指导。

上位机发送读指令:

BYTE1: PLC地址 (1~255)

BYTE2: 0x00 (读指令代码)

BYTE3: 寄存器类型(0-V, 1-Q, 2-I)

BYTE4-5: 起始偏移地址(0-9999)

BYTE6: 数据个数(1~32 n)

BYTE7: 数据类型(1,2,4 m)

BYTE8-11: 保留

BYTE12: 校验字节

PLC应答:

读成功时:

BYTE1: PLC地址 (1~255)

BYTE2: 0x00 (读指令代码)

BYTE3: 寄存器类型(0-V, 1-Q, 2-I)

BYTE4-5: 起始偏移地址(0-9999)

BYTE6: 数据个数(1~32 n)

BYTE7: 数据类型(1,2,4 m)

BYTE8-n*m+8: 数据

BYTEn*m+9: 校验字节



MAIN

LD     SM0.1

CALL   SBR_0:SBR0                  //初始化子程序

LD     SM0.7

=      SM30.0

SBR_0:初始化子程序SUBROUTINE COMMENTS Press F1 for help and example program

LD     SM0.0

MOVW   +2, VW8                     //PLC自由口地址,此处每台机器需设不同的地址

LD     SM0.0

MOVB   9, SMB30                    //通讯参数,波特率9600,自由口通讯

MOVD   &VB100, VD40// VB100:接收缓冲区的首字节

MOVW   +10, VW54// VW54:存放发送数据按字节异或校验的次数,10次校验完已//接收了11个字节了,最后一个12号字节是校验。

MOVB   12, VB150

MOVB   VB9, VB151// VB151赋以本机地址

MOVD   &VB151, VD60// 发送首地址VD60赋以地址

MOVB   6, SMB34

ATCH   INT_0:INT0, 10

ATCH   INT_1:INT1, 8

ENI

INT_0://用作初始化几个参数。每次接受新一帧数据前调用,完了就进入INT_2(接受地址,//并判断,)

LD     SM0.0

DTCH   10

MOVD   VD40, VD46//初始化 VD46为VD40

MOVW   +10, VW44//初始化异或校验的次数

MOVW   +10, VW54//初始化异或校验的次数

ATCH   INT_2:INT2, 8               //接受中断起用服务程序INT2

INT_1://延时转向INT0//网络正常时这里应该很少调用

LD     SM0.0

MOVB   5, SMB34

ATCH   INT_0:INT0, 10

INT_2:接受地址,并判断

LDB=   SMB2, VB9                   //地址和本机相符

MOVW   VW8, AC0// AC0这时存入的是本机地址

MOVB   255, SMB34//255MS的长延时监控,如超过将做异常处理回到初始化重新再来接//收,要知道传送一个字节是毫秒级的。就是200字节左右看做异常

ATCH   INT_3:INT3, 8               //起用中断服务INT3,接受包

ATCH   INT_5:INT5, 10              //起用延时监控服务INT5

CRETI

LDB=   SMB2, VB9                   //地址和本机不符

NOT

ATCH   INT_0:INT0, 10              //返回中断入口

ATCH   INT_1:INT1, 8

INT_3://主接受服务程序,同时做异或校验

LD     SM0.0

XORW   SMW1, AC0// AC0上次已存入本机地址,这次做第一次异或,记住异或的次数

MOVB   SMB2, *VD46// 指针VD46这时指向VB100,即将读写代码存入VB100

INCD   VD46//指针VD46指向VB101

DECW   VW44//异或的次数VW44-1=10-1=9

LD     SM1.0                       //完成预定的接受字节数//10次异或完就接收11

//个字节,一桢是12个字节,第12字节是校验位,

ATCH   INT_4:INT4, 8               //起用通讯数据处理主程序//第12字节交INT4比较//处理

INT4://通讯数据处理主服务程序

LD     SM0.0

BMB    VB100, VB152, 6//接受报头拷贝到发送报头// VB100存读写代码,VB151赋以本

//机地址,VB152存读写代码

LD     SM0.0

DTCH   8                           //暂停响应接受中断

INCD   VD46// VD46这时指向VB111,

MOVB   SMB2, *VD46//校验位存入*VD46即VB111

XORW   SMW1, AC0// AC0是前11个字节的异或

ANDW   16#FF, AC0                  //检查异或校验

LDN    SM1.0                       //异或校验错误

MOVB   VB100, AC0// VB100存读写代码

MOVB   16#80, AC1

ORW    AC0, AC1//这步运算,如读AC1=0X80,如写AC1=0X81

MOVB   AC1, VB152// VB152存入发送帧的BYTE2,VB151是BYTE1:本机地址

MOVB   16#1, VB158// VB158:BYTE8: 0x01(校验错代码)

MOVW   +10, VW54//10次异或的次数

JMP    3                           //校验错误,向PC返回错误码

LD     SM1.0                       //异或正确//两数相同异或结果=0,很好理解

MOVW   +4, VW34

ATCH   INT_8:INT8, 8               //起用服务程序INT8响应接受中断,接受包尾

LD     SM0.0                       //数据处理


Tags:组态王,自由口通信,200PLC  
责任编辑:admin
  • 上一篇文章:
  • 下一篇文章: 没有了
  • 请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
    1分 2分 3分 4分 5分

    还可以输入 200 个字
    [ 查看全部 ] 网友评论
        没有任何评论
    閻㈤潧鐡欏鈧崣鎴犵秹閿涙碍鐪归梿鍡欐偅閸氬牆鎮囩猾鑽ゆ暩鐎涙劕鍩楁担婊€绗岄悽浣冪熅閸ュ墽娈戠純鎴犵彲閿涘lc瀹搞儲甯堕幎鈧張锟�,濡紕鏁搁弫鎵暩閻儴鐦�,閸楁洜澧栭張绡岲A缁涘鐡戦敍浣藉疮閽€鍐暩鐠侯垰娴樼純鎴犵彲缁儳宕曢敍灞艰礋瀹搞儳鈻肩敮鍫濆灡闁姳鐜崐绗衡偓鍌涱偨鏉╁骸鍙у▔銊ヤ簳娣団€冲彆娴兼褰块敍姘辨暩鐎涙劕绱戦崣鎴犵秹閿涳拷
    最新推荐
    鐠у嫭鏋¢崠鍛瑓鏉烇拷
     [闂佸憡顨嗗ú婊勬櫠閺嶎厼瀚夊Δ锕佹硶閵堫偊鏌¢崒锔藉]闂佸憡銇炵粈渚€濡垫径灞稿亾濞戝磭绱扮紒鍙樺嵆瀹曪繝寮撮悩宸毈闂佸搫鐗嗛幖顐︽偪閸曨剛鐟归柨鐕傛嫹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婵炲濮惧▔鏇烇耿閿燂拷
    热门文章
    • 此栏目下没有热点文章
    閺堚偓閺傜増鏋冪粩锟�
    关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
    返回顶部
    刷新页面
    下到页底
    晶体管查询