西门子PLC与变频器的通信

今天在网上终于找到了有关PLC与变频器通信,我要发送一个数据到变频器的参数P001,这些址和数据地址要放在哪里了,但对里面的CRC校验数据有点不明白,我要发送1到P001的话,1就是放在数据地址里,P001就是放在被写地址里,那CRC又不是我想要的,这是通信时要校验发送数据是不是正确的一个程序,这个校验码哪里来啊,还有这个被写地址的高位是P还是P0被写地址的低位是001还是01?对
 PLC内存使用说明
 西门子S7-200系列PLC的自由通讯端口编程必定会用到两个指令,即XMT(发送)指令和RCV(接收)指令。编写程序时需要为这两个指令指定数据缓冲区,一般以最低位数为0的地址作为数据缓冲区的起始地址。
     1.发送指令XMT缓冲区(写/读)
 VB100        //xmt指令要发送的字节个数
 VB101        //变频器通讯地址(01)
 VB102        //modbus功能码(06/03)
 VB103        //变频器被写地址高位/变频器被读起始地址高位
 VB104        //变频器被写地址低位/变频器被读起始地址低位
 VB105        //被写数据高位/被读数据字个数高位
 VB106        //被写数据低位/被读数据字个数低位
 VB107        //被发送数据CRC低位
 VB108        //被发送数据CRC高位
 2.接收指令RCV缓冲区
 VB200        //rcv指令要接收的字节个数
 VB201        //变频器地址(01)
 VB202        //modbus功能码(06/03)
 VB203        //变频器被写地址高位/被读数据字节个数高位
 VB204        //变频器被写地址低位/被读数据字节个数低位
 VB205        //被写数据高位/被读数据高位
 VB206        //被写数据低位/被读数据低位
 VB207        //被接收数据CRC低位
 VB208        //被接收数据CRC高位
 VB217       //被接收数据CRC验算低位
 VB218       //被接收数据CRC验算高位
 

最佳答案

既然是modbus协议,我建议你在plc编程前,先使用modscan软件测试与变频器的通讯,并可以从modscan软件中读出报文内容和格式。然后在200软件的数据块中添加已获得的规则化的报文,发送即可。注:调试modbus协议必须配有modscan软件和串口调试软件,这两软件可以使协议报文更加明郎,提高工程师工作效率。另,可加1093079077进一步详谈lcr、crc校验方式。

 modbus协议的RTU模式的校验使用CRC校验。
 生成CRC-16校验字节的步骤如下:
 ①如一个16位寄存器,所有数字均为1。
 ②该16位寄存器的低位字节与开始8位字节(报文的第一个字节)进行“异或”运算。运算结果放入这个16位寄存器。
 ③把这个16寄存器向右移一位。
 ④若向右(标记位)移出的数字是1,则生成多项式1010000000000001和这个寄存器进行“异或”运算;若向右移出的数位是
 0,则返回③。
 ⑤重复③和④,直至移出8位。
 ⑥另外8位(报文接下来的下一个字节)与该十六位寄存器进行“异或”运算。
 ⑦重复③~⑥,直至该报文所有字节均与16位寄存器进行“异或”运算,并移位8次。
 ⑧这个16位寄存器的内容即2字节CRC错误校验,被加到报文的最高有效位。
 CRC添加到消息中时,低字节先加入,然后高字节。

 再次强调:调试modbus协议最好配有modscan软件和串口调试软件,这两软件可以使协议报文更加明郎,提高工程师工作效率。

提问者对于答案的评价:
谢谢你了,

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午10:45
下一篇 2021年7月4日 下午10:45

相关推荐

  • PLC 存储区数据

    在s7-200中,由于使用了一个移位寄存器指令来做子程序调用控制,同一个时刻只能调用一个子程序,因此寄存器里面的数据只能有一个1,其余为0。所以存储区中的数据正确对程序非常重要。我…

    SIMATIC S7-200 2020年11月1日
  • HITECH 与组态王

    海泰克能用否组态王组态? 问题补充:那么组态HITECH触摸屏用什么组态软件好啊?只能ADP? 最佳答案 两者通讯是可以!你说的组态是用组态王来组态海泰克HMI里面的画面吗!不行吧…

    SIMATIC S7-200 2021年7月5日
  • 关于块传送指令的输出数据类型!!

    224XP中,BLKMOV_W指令输出OUT数据类型可以是指针,假如说存储的首地址是VW3000,我用的OUT是*AC,那么AC里面的数据应该是甚么,是3000,还是想办法让*AC…

    SIMATIC S7-200 2021年7月5日
  • S7200电源问题

    我选了一个S7216CPU,然后还有一个32入/32出模块和一个8入模块,我现在用CPU自带的24V电源对32入/32出的模块供电(接到L+与M),另外所有输入点用外接的24V开关…

    SIMATIC S7-200 2020年11月1日
  • s7-200使用modbus编译时遇到的问题,难!难!难!

    网上下载的modbus,库存储区分配好后,编译时遇到了以下问题,请各位老师帮忙,多谢。看看子程序是否存在问题及如何解决?     …

    2021年7月5日
  • S7-200MODBUS通讯能否同时既做主站又做从站?

    我现在有8台变频器,想让变频器做从站,PLC做主站,现在问题是PLC还要与DCS做modbus通讯,是不是S7-200既能同时做主站又能做从站?  最佳答案 最好用带两个…

    SIMATIC S7-200 2020年11月1日
  • 求一个S7-200 的模拟器,我软件是SP9版本的

    如题,最好是西门子官方的,其他的网站注册要钱,比较麻烦。谢谢各位。 最佳答案 西门子官方没有出过S7-200 的模拟器,网上能找到的都是第三方开发的,并不好用。建议自己买…

    SIMATIC S7-200 2018年12月7日
  • 使用不了Mbus_INIt

    打开S7-Micro/Win  SP9打开后库存储区为灰色,想使用s7-200与MOXA通信,打不开库存储区就不能为modbus指令库分配V存储区。 最佳答案 …

    SIMATIC S7-200 2017年8月18日
  • ET200S AO模块问题求助

    ET 200S 分布式 I/O 2AO U ST 模拟电子模块  (6ES7135-4FB…

    2021年7月5日
  • EM227选型

    我现在CPU选的是CPU226CN  选哪个型号的EM227比较合适 问题补充:EM277 最佳答案 EM 277只有一种:EM 277&n…

    SIMATIC S7-200 2020年11月5日

发表回复

登录后才能评论