请问1200PLC和其他设备通过以太网通讯,该如何根据对方的协议写MB_SERVER块呢?

请问用1200上的以太网口控制其他公司的带以太网口的驱动器,使用MB_SERVER块,但是对方的通讯协议我看不懂啊?
比如说,我想要读取寄存器地址512H:故障状态信息,517H:直流母线电压Ua(V)
518H:直流母线电流Idc(A),请问在MB_SERVER里我该如何做啊?

这是对方给的协议:

"03 读多个寄存器
"   
查询 QUERY  Field Name Example(Hex 32bit) 
 Slave Address从机地址 0000 0001 
 Function功能代码 0000 0003 
 Starting Address开始地址 0000 0000 
 No of Register查询寄存器个数 0000 0005 
 Error Check ( CRC32) (非MODBUS-TCP时使用) 
   
响应 RESPONSE    Field Name Example(Hex 32bit) 
 Slave Address从机地址 0000 0001 
 Function功能代码 0000 0003 
 No of Bity查询寄存器数量(No of Register) 0000 0005 
 Data 1 0000 0004 
 Data 2 1000 5000 
 Data 3 2000 2555 
 Error Check ( CRC32) (非MODBUS-TCP时使用) 
   

"03 读多个寄存器
"   
查询 QUERY  Field Name Example(Hex 32bit) 
 Slave Address从机地址 0000 0001 
 Function功能代码 0000 0003 
 Starting Address开始地址 0000 0000 
 No of Register查询寄存器个数 0000 0005 
 Error Check ( CRC32) (非MODBUS-TCP时使用) 
   
响应 RESPONSE    Field Name Example(Hex 32bit) 
 Slave Address从机地址 0000 0001 
 Function功能代码 0000 0003 
 No of Bity查询寄存器数量(No of Register) 0000 0005 
 Data 1 0000 0004 
 Data 2 1000 5000 
 Data 3 2000 2555 
 Error Check ( CRC32) (非MODBUS-TCP时使用) 
   
1、本规约以以太网为主,兼容SCI通信。 本身协议不区分LAN、SCI,硬件不同,通过硬件抽象层修改、调整,独立应用协议本身   
2、本规约不做数据结构内部预留,可以在地址任意部位插入新的数据,被查地址被占用,后续地址重新排位。   
3、在以太网时每帧数据前加入16个字节的GUID帧标志。

地址:0x0000 0200-0x0000 02FF(寄存器数量256,支持功能码03)    
寄存器地址H 数据类型(32位) 数据格式 数据范围 功能说明
512 Uint32 见注释0 见注释0 故障状态信息
513 float x 0无效数据/1停机/2待机/3运行 运行状态信息
514 float x 0无效数据/1实验停止/2实验中 实验状态信息
515 float 见注释1 见注释1 未用
516 float xx.xxxxx 0-100 电源内阻(Ω)
517 float xxxx.xx 0-10000 直流母线电压Ua(V)
518 float xxxx.xx 0-10000 直流母线电流Idc(A)
519 float xxxx.xx 0-10000 输出电压直流部分(V)
520 float xxxx.xx 0-10000 输出电压谐波部分(V)
521 float xxxx.xx 0-10000 输出电流直流部分(A)
522 float xxxx.xx 0-10000 输出电流谐波部分(A)
523 float xxxx.xx 0-10000 输出功率(kW)

问题补充:
那是不是说,如果我想读取512-520地址,写入1024-1026地址和1283-1284地址,那我需要调用3次MB_CLIENT啊

最佳答案

使用S7-1200读其它设备的数据端,S7-1200应作为客户端,数据应答的作为服务器;
S7-1200编写通信应用MB_CLIENT;执行后,使用move将数据保存。
相关的参数请查看博图帮助,帮助里面也有例子

这个协议不需要理解,MB_CLIENT在后台已经自动处理协议了。
你需要知道要读的寄存器的地址,和数据含义就可以了

可参考V13程序
https://support.industry.siemens.com/cs/document/83130159/%E5%A6%82%E4%BD%95%E7%BC%96%E7%A8%8B%E5%92%8C%E5%8F%82%E6%95%B0%E5%8C%96%E4%B8%A4%E4%B8%AA-s7-1200-cpu-%E4%B9%8B%E9%97%B4%E7%9A%84modbus-tcp-%E9%80%9A%E4%BF%A1-?dti=0&lc=zh-CN


这几个地址不连续,要调用几次

提问者对于答案的评价:
谢谢,还是有点不太明白,麻烦您有时间了看看我的第二篇求助
http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=144599&cid=1072

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc173563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月13日
下一篇 2017年6月13日

相关推荐

  • S7-1200下载硬件配置问题

    用step7 basic下载硬件配置时出现“修改测试功能已激活,拒绝下载硬件配置”,但没找到有什么激活了啊,谁知道是什么问题啊? 最佳答案 按F1键使用帮助功能看看,不行…

    SIMATIC S7-1200 2017年11月18日
  • S7-1200 高级培训(9)——编程基础D

    S7-1200 高级培训(9)——编程基础D 课程编号:V1527 本系列高级培训课程包含了S7-1200概…. 点击这里,打开新窗口观看完整视频 该视频下的所有用户提…

    2017年6月19日
  • WinCC如何使用脚本提取S1200变量后带入公式计算

    如何使用WinCC的脚本写公式然后赋值于内部变量再输出在屏上,大致的脚本格式怎么写? 最佳答案 Dim SourceTag1,SourceTag2Dim Tar…

    SIMATIC S7-1200 2017年6月7日
  • S7-120下载线和通讯线问题

    1、S7-1200和DCS通讯用哪种?2、S7-1200下载线选哪种,要是用网线的话是双绞还是直通的?3、和触摸屏连接的话,只能选择simatic精简系列面板么,哪些TP277什么…

    SIMATIC S7-1200 2017年11月4日
  • S7-1200 TCP Modbus

    详细内容见图, 请各位指点。 问题补充:补充一下。  我并不希望modbus TCP可以直接控制我的Q点,因为在某些情况下是不允许输出的,但…

    SIMATIC S7-1200 2017年7月25日
  • 如何上载S7-1200程序?

    编程软件只有下载按钮,没有上载按钮,如何上载S7-1200的程序? 最佳答案 在S7-1200 CPU中,硬件和软件的上载是分开的,无法像S7-300 CPU那…

    SIMATIC S7-1200 2017年11月12日
  • 利用触摸屏或者WINCC是否可以控制S7-1200的启停

    利用触摸屏或者WINCC是否可以控制S7-1200的启停 最佳答案 可以的,我刚做了测试,见图例中我的操作你就明白了 图片说明:    提问者对于答案的评价:你…

    2017年10月24日
  • 这快照是什么意思?

    这快照是什么意思? 最佳答案 快照功能就是将如数据块DB的某一个周期的数据,通过快照功能保存,并复制下载到该数据块中。快照功能赋值并不是初始的数据块数据,而是实际运行的数据块数据的…

    SIMATIC S7-1200 2021年7月5日
  • s7-1200高速计数12

    已经组态配置好了s7-1200的高速计数HSC1,OB40做中断,请问OB40及HSC1需要在程序里调用吗?在OB1里?谢谢 最佳答案 通常都需要在中断OB40中调用HSC指令,对…

    SIMATIC S7-1200 2017年8月3日
  • CP1242-5 GSD文件

    CP1242-5 GSD文件哪里可以下载 最佳答案 参见:Download GSD Datei CM 1242-5http://s…

    SIMATIC S7-1200 2017年8月26日