电工之家_电工基础知识学习网站
当前位置:电工之家 > plc > 施耐德plc > 正文

施耐德PLC通讯的套路

时间:2018-02-10 13:55 来源:电工之家 手机版

施耐德PLC通讯的套路
施耐德PLC通讯的套路就是三个功能块,ADDM ,READ_VAR,WRITE_VAR,下面分别介绍
1 ADDM
ADDM功能块是地址转换,就是把PLC 的物理地址转换成PLC可识别的地址类型,这句话比较拗口,通俗讲,就是把字符串型变量,转换成ADDRESS 型变量,我们还是看例子
施耐德PLC通讯的套路
图一 ADDM功能块
如图一,图中红色圆圈内就是一个字符串型变量 '2,1' 第一个数字2表示PLC 的串口2,第二个数字1 表示读取的从站地址,也就是变频器的地址,而此功能块就是把此地址转换成ADDRESS型变量 A1_Add。也许你会有疑问,为什么这么做?我也不知道,此款PLC就是这样,这就是它的套路,对于此种套路,我们只能牢记。在其他PLC特别是日系,一般是通过设置参数的方式实现,也有使用指令的。
还有一点,黄色荧光笔部分的三个黑点,是表示电路相通,而它正是把转换好的地址赋值给下面我们要介绍的功能块。也就是说,读写功能块读取或写入变量的从站地址就是使用变量A1_Add。
2 WRITE_VAR
此功能块是用于往从站写数据,也就是写入变频器的运行频率。
施耐德PLC通讯的套路
图二 WRITE_VAR 功能块
这个功能块的信息量就很大了,我们一点点分析
1 看黄色荧光笔部分 Addr,这个就是从站的地址,也就是变频器的地址,它是一个ADDRESS型变量,就是我们在ADDM功能块中转化的,就是图一的那三个黑点,就是连接到此处的,这也是CFC的优点,要用的变量轻松一连,而在FBD或是LD 中,我们就要建立一个中间变量传递一下了。
2 下面三处用荧光笔表示的 就是此功能块的精髓了,它表示往变频器的地址0002开始写入一个WORD型变量,而写的这个数值放在PLC变量Fre里,这就是这个功能块的目的,也是此次通信的目的,执行结果,就是把PLC变量Fre的值,写到了变频器的0002里面。当然,此处我们只写入了一个WORD,其实此功能块是支持一次写入125个的,因为Quantity是一个SINT型变量。Fre是一个数组型变量,当我们要一次写入很多数值的时候,用数组就很方便了。
此处有个知识点,通信只能读取或是写入WORD型变量,而WORD型变量的值只能是正数,当我们要读取或是写入负数的时候,该怎么办呢?大家可以思考一下。
3 右边红色圆圈是功能块的输出,它表示了功能块执行的各种状态,它是标准的PLCopen信号(关于PLCopen以后会详细介绍,今天只介绍与此功能块有关的)
Done 表示功能块执行正常后置为TRUE,此处,我们取它的反信号来监控通信状态,如果超过3S没有Done信号,我们可以认为此次写入失败,那么就代表通信失败。
Busy表示功能块执行情况的输出,如果为高电平,表示功能块正在执行。我们读取它的下降沿,来触发下一次操作。
Error是功能块的错误,可能你会有疑问,为什么通信错误不用这个信号呢?其实这个错误表示的范围更广,它表示功能块检测到错误就报警,有时候,我们通信正常,但是当我们读取的数据有问题,或是参数设置不正确时,也会报错,而我在程序中的错误仅仅是通信不上的错误,也就是,这个Error表示的范围更广泛,它更适合我们调试的时候监控。而我在程序中取的通信错误,是在上位机做监控用的。
3 READ_VAR
读取和写入的功能块完全一样,大家可以尝试自己分析一下。
施耐德PLC通讯的套路
图三 READ_VAR功能块
4 数据的处理
施耐德PLC通讯的套路
图四 数据的处理
这段是程序中和我们直接相关的,写入的频率,读取的频率和电流都是用MOVE指令处理,放到指定的变量中,方便我们使用,毕竟通信的最终目的就是交互数据。