1.1 软件
安装 step7 micro/win smart software(含 modbus协议库)的pc机,本例中使用的是step7 micro-win smart v2.0。
1.2 硬件
g120配备cu240e-2控制单元的变频器一台、异步电机一台、s7-200 smart plc 一台、标准drive-cliq电缆一根、双绞屏蔽电缆一根。本例中,使用的g120的控制单元cu240e-2固件版本v4.6。
注意:在使用microwin software创建项目之前,确认modbus库文件已经存在。
图1-1 s7-200 smart 界面
2、硬件接线 2.1 cu240e-2控制单元接口
cu240e-2控制单元端子排如图2-1,rs485接口在控制单元的底部,共有5个接线端子,其中从左到右,2号端子为rs485p,3号端子为rs485n,这两端子用于通信数据的发送和接收。
图2-1 控制单元端子图
2.2 g120 与s7-200 smart接线
图2-2 plc和控制器接线图
s7-200 smart作为modbus通信主站,其通信端口和变频器从站的接线如图 2-2。在通信网络的首、末端需要使用终端电阻。对于s7-200 smart,需要在通信端口端子 3和8之间连接一阻值为120欧姆的电阻。对于变频器,把通 信网络末端的cu240e-2终端电阻拨码开关拨到on位置即可(位置在图 2-1中,标号⑨);中间位置的 cu240e-2,终端电阻拨码开关必须拨到off位置。本 例中,s7-200 smart使用cpu自带通信端口和变频器进行通信。
3、通信设置
3.1 设置通讯接口
本例程使用plc 以太网接口和 drive-cliq 电缆,设置通信接口,如下图3-1。
第一步:双击“通信”,弹出“通信”设置窗口;
第二步:选择网络接口卡,设置为“icp/ip.auto.1”,系统会自动收索cpu。
图3-1 设置通信接口
3.2 建立pc和plc之间的连接
选择“网络接口”后自动搜索到cpu,如图3-2。
第一步:搜索到 cpu 后,选择搜索到的cpu,点击cpu的”ip地址”。
第二步:点击“ 确定 ” 按钮,完成网络连接。
图3-2 建立s7-200 cpu和控制器连接
4、变频器参数设置
4.1 变频器地址设置
变频器的modbus通信地址可以通过控制单元上的总线地址拨码开关进行设置,如图 4-1。 当地址拨码开关的位置都为off时,也可用过参数 p2021进行设置。(说明: 改变地址后需重新上电后才能生效)
图 4-1 地址开关设置
4.2 变频器参数设置
对变频器一些基本的通信参数进行设置,才可以进行modbus通信,如表4-2所示:
表4-2 变频器的参数设置
4.3 g120常用寄存器说明
g120变频器常用寄存器介绍,也是本例所使用的寄存器,如表4-3。要了解更多的 g120寄存器信息,请参见g120操作手册 。
表4-3 常用寄存器说明
5、plc编程
5.1 初始化程序
使用modbus协议的初始化模块mbus_ctrl,初始化s7-200 smart的cpu端口专用于modbus主站通信,如图 5-1。
图 5-1 初始化
功能块说明:
注:此处以及下文的“功能块说明”仅介绍了功能块内的主要管脚功能,未说 明的管脚功能,请参考 step7 micro-win smart v2.0软件的帮助文件。
en使能: 必须保证每一扫描周期都被使能(使用sm0.0
mode模式: 为1时,使能modbus协议功能;为0时恢复为系统ppi协议。baud 波特率: 支持的通讯波特率为4800,9600,19200 ,此处设置 9600。 parity 校验: 校验方式选择 (g120采用偶校验)
0=无校验
1=奇较验
2=偶较验
port端口:设置物理通信端口(0= cpu中集成的 rs-485,1= 可选 cm01信号板上的 rs-485或rs-232)。
timeout超时:主站等待从站响应的时间,以毫秒为单位,典型的设置值为1000毫秒(1 秒),允许设置的范围为 1-32767。注意:这个值必须设置足 够大以保证从站有时间响应。
done完成位:初始化完成,此位会自动置1。
error:初始化错误代码。
5.2 主站读写功能块
5.2.1 写控制字
图5-2 写控制字
功能块说明:
注:此处以及下文的“功能块说明”仅介绍了功能块内的主要管脚功能,未说 明的管脚功能,请参考step7 micro-win smart v2.0软件的帮助文件。
en使能:同一时刻只能有一个读写功能(即 mbus_msg)使能。注意:g120对于写指令同一时刻只运行对一个保持寄存器操作;读指令同一时 刻最大允许操作125个保持寄存器。
first读写请求位:每一个新的读写请求必须使用脉冲触发。
slave从站地址:可选择的范围1-247
rw请求方式: 0=读,1=写
count数据个数:通讯的数据个数(位或字的个数)。注意:modbus主站可读/写的最大数据量为120个字(是指每一个mbus_msg指令)。
dataptr数据指针:
如果是读指令,读回的数据放到这个数据区中 ;
2. 如果是写指令,写出的数据放到这个数据区中 。
done 完成位:读写功能完成位 。
error错误代码: 只有在 done位为1时,错误代码才有效。
常用的控制字:
047e :运行准备
047f :正转启动
0c7f :反转启动
04fe :故障确认
5.2.2 写速度设定值
图5-3 写速度值
5.2.3 读状态字和速度实际值
图5-4 读状态字1和速度实际值
5.2.4 读取斜坡时间
图5-5 读参数 p1120、p1121
5.2.5 写斜坡下降时间
图5-6 写参数 p1121
6、分配库存储区
在编译程序之前,首先要为modbus库分配可用的全局 v存储器地址,如图6-1所示。
第一步:选择 “程序块” ->“ 库” 右键,选择“库存储区”;
第二步:点击 “建议地址”, 选择 v存储器的地址;
第三步:点击 “确定”退出。
图6-1 分配库存储区
7、调试程序
程序编辑完成后,要调试程序,如下图7-1所示。
第一步:点击“保存“,保存好编辑的程序;
第二步:点击“编译“,编译程序;
第三步:点击“下载“,把程序下载到plc的cpu当中; 第四步:点击“运行“,启动程序。
图7-1 调试程序
8、监控状态表
通过监控状态表,可以修改过程数据和监控过程数据的变化状态,如图8-1所示。
图8-1状态表
控制字:vw100=16#047f 说明启动命令已经给了。
状态字:vw300=16#ef37 说明变频器的状态,参见 r0052。
主设定值:vw200=16#1000 说明速度设定值已经给了,16#0-4000对应转速 0-p2000的值。
速度实际值:vw302=16#1000 说明电机实际转速已经运行到 375rpm。 斜坡上升时间:vw400=1000,从寄存器列表中可以看到 40322的寄存器的定 标系数是 100,所以参数 p1120=1000/100=10。
斜坡下降时间:vw402=2000,读的下降时间;vw500=2000,设定的下降时 间;vw402=vw500,说明写指令已经生效。从寄存器列表中可以看到 40323 的寄存器的定标系数是 100,所以参数 p1121=2000/100=20。
9、modbus错误代码
done完成位:modbus功能块的完成位,用于确定功能块的操作是否完成;
error 错误代码:只有在done位为1时,错误代码才有效。modbus错误代码及含义如表 9-1所示。
表9-1 modbus错误代码表