本来对USS协议不怎么感冒,今天偶尔来兴趣试了一天,搞的我晕头转向.
我按V4.0 SP3软件帮助里的例程编好程序,倒入S7200 CPU226中
设好PORT0口通讯波特率,为19200,用PORT1监控程序(没想到怎么也连不上,提示多主站的PROFIBUS断开,所以我放弃用PORT1在线监控的想法)
然后把一个MM440变频器里的参数按帮助文件里的设好,一个都没有错,对了很多遍.
然后,我用一按钮来接通I0.0,开机运行通讯,没反应,查看R2O25,R2026都为0.不知道是什么原因.反复试都不得其解.
后来在网上找了一个英文的例程,估计应该是西门子出的,很长,写了很多中断.
倒进去,试运行,就可以了.参数设定我都没有更改.
后来想肯定是这个简单的程序不足以让变频器运行,做罢,今天特向各位请教.
是什么原因,帮助里的程序我复制如下
NETWORK 1 // 初始化USS写移:在首次扫描时,在19200位置
// 为端口0启用USS协议,将驱动器地址“0”设为激活
LD SM0.1
CALL USS_INIT, 1, 19200, 16#00000001, Q0.0, VB1
NETWORK 2 // 为驱动器0控制参数
LD SM0.0
CALL USS_CTRL, I0.0, I0.1, I0.2, I0.3, I0.4, 0, 1, 100.0, M0.0, VB2, VW4, VD6, Q0.1, Q0.2, Q0.3, Q0.4
NETWORK 3 // 从驱动器0读取字参数
// 读取参数5索引0
LD I0.5 // 将I0.5状态保存至一个临时
= L60.0 // L位置,以便本网络在LAD中显示。
LD I0.5 // 将I0.5的上升边缘脉冲保存
EU
= L63.7 // 至一个临时L位置,以便传送至子程序。
LD L60.0
CALL USS_RPM_W, L63.7, 0, 5, 0, &VB20, M0.1, VB10, VW12
NETWORK 4 // 在驱动器0中写入一个字参数
// 写入参数2000索引0
LD I0.6
= L60.0
LD I0.6
EU
= L63.7
LDN SM0.0
= L63.6
LD L60.0
CALL USS_WPM_R, L63.7, L63.6, 0, 2000, 0, 50.0, &VB40, M0.2, VB14