新闻中心

EEPW首页>嵌入式系统>设计应用> S7-300与Carrier冷冻机的Modbus串行通讯

S7-300与Carrier冷冻机的Modbus串行通讯

作者: 时间:2016-12-20 来源:网络 收藏

  cp340有三种接口方式,包括rs232c,rs422/rs485和20ma tty接口。本例中按carriermodbus网关的要求选择了rs422/rs485接口形式。

5 cp340硬件组态

  (1)安装驱动:安装cp340的驱动光盘,安装后可以对cp340进行硬件配置,可以调用cp340的发送、接收功能块fb3、fb2。

  (2)新建项目:打开西门子编程软件step7,选择菜单“file”→“new”新建一个项目,在“name”中输入项目名称。

  (3)组态s7-300站:插入一个“simatic300

  station”,然后对硬件进行组态,按安装次序依次插入机架、电源、cpu和cp340。

  (4)组态串行通信模块参数:双击“cp340”栏,在弹出界面中点击“parameter”按钮,进入参数化界面,选择ascii驱动,双击“protocol”栏,进入ascii参数化界面(见图1),在endid of receive message frame 栏中,选择用两个字符的间隔时间来判断报文是否结束(on expiry ofdelay time),字符延长时间为20ms。在speed格中传输速率选择9600bit/s。在“characerframe‘栏中选择数据位8位,停止位1位、无校验,与冷冻机的modbus网关设置相同。

  (5)模式选择:进入interface界面(见图2),把操作模式选择为half duplex(rs485) two-wiremode。表示此通信运行在rs485半双工模式。

6 软件编程

  硬件组态完成后,接下来就进行软件编程,在ob1中调用fb3发送程序块。

  call fb 3,db22

  req :=m0.0

  r :=

  laddr :=256

  db-n0 :=10

  len :=8

  done :=

  error :=

  status :=

  引脚说明:

  req:发送请求,每个上升沿发送一帧数据

  r:复位请求

  laddr:cp340的逻辑地址(硬件组态中的地址)

  db_no:指定发送区(db块)

  dbb_no:指定发送区在db中的起始字节

  len:发送字节的长度

  done:发送完成输出一个脉冲

  error:发送失败输出1

  status:状态字

  此程序的功能为,当m0.0每个上升沿的时候把数据块db10中的前8个字节的数据从cp340的通信口发出,数据内如表2所示。

  该发送数据包内容可以解释为,请求读取站地址为16#b的通信处理器中从16#4100开始的22个寄存器中的数据。即前面提到的网关变量表中的内容。

  图中byte7(db10.dbb6),byte8(db10.dbb8)两个字节是crc校验字,crc校验的步骤如下:

  (1)装载16#ffff到一个16位crc寄存器;

  (2)将crc寄存器的高8位字节与信息中的第一个8位字节相异或,结果返回到crc寄存器中;

  (3)将crc寄存器数据向右移动一位;

  (4)如果溢出的位等于1,则将crc寄存器与16#a001相异或,结果返回到crc寄存器中;

  (5)如果溢出的位等于0,则重复第3步;

  (6)重复第3、4步骤,直到已经移位了8次;

  (7)将crc寄存器的高8位字节与信息中的下一个8位字节相异或,结果返回到crc寄存器中;

  (8)重复第3步到第6步,直到信息中所有字节都与crc寄存器相异或,并都移位了8次;

  (9)最后的crc寄存器中的结果即为crc校验码,最后被添加到信息(数据)的末尾(交换!低8位在前,高8位在后!)。



评论


相关推荐

技术专区

关闭