金昌西门子PLC模块授权代理商
西门子AS-I通信编程方式有哪些
1.调用ASIX_CTRL子程序
将图12-13左边窗口的文件夹“\程序块\向导”中的子程序“ASIx_CTRL”拖放到OB1中(见图12-14),其中的x是AS-i模块所在的槽位号。SM0.0的常开触点一直接通,每次扫描时都执行ASIx_CTRL,才能保证正常的AS-i网络通信。必须为每个CP 243-2模块编写条ASIx_CTRL指令。ASIx_CTRL指令根据ASIx_SYM符号表中的定义,在AS-i模块和CPU的V存储区之间复制从站IO数据。ASIx_CTRL只有一个输出变量Error(错误信息),可以在ASI向导的在线帮助中查阅错误代码的意义。
CP 243-2占用的CPU的数字量输入、输出字节(本例程为IB2和2)分别是AS-i的状态(错误)字节和命令字节。它们各位的意义见表12-2和表12-3。
图 12-14 调用ASI0_CTRL 子程序 图 12-15 控制ASI通信位
表 12-2 状态字节
表 12-3 控制字节
主站发送数据之前,应将控制字节中的“ASI_COM”(Q2.6)置位为1(见图12-15)。下载程序后,可以通过AS-i**的符号表(见图12-13)中的符号地址或**地址访问AS-i 从站的输入、输出变量。
2. CP 243-2 的 Bank
分配给CP243-2的8个模拟量输入字和8个模拟量输出字(本例从AIW0和AQW0开始),可以被切换为称为Bank(库)的64个输入区和64个输出区,每个区的长度为8个字。用控制字的0~5位选择Bank。Bank0用于标准从站或A从站的数字量输入,Bank1用于AS-i 诊断,Bank2~Bank15用于命令调用的响应数据,Bank31用于B从站的数字量输入。Bank32~Bank47是从站1~31的模拟量输入。
3. 用ASI命令实现主站的控制和诊断功能
CP243-2用各种命令来实现主站的控制功能,AS-i命令的详细资料见随书光盘中的文件《CP243-2 AS-i Master Manual》的5章。
子程序ASIx_READ从*的库读取数据(见图12-16),并将该数据存放在由指针DB_Ptr *的16B的V存储区。子程序ASIx_WRITE将数据写入CP243-2中*的库(见图12-17),
用指针DB_Ptr*16个字节的V存储区的源地址。
图 12-16 调用ASI0_READ 图 12-17 调用ASI0_WRITE
以执行命令Change_AS-i_Slave_Address(改变AS-i从站地址)为例,由CP243-2的用户手册可知,该命令的发送缓冲区的首字节为命令代码16#0D,2和3个字节分别是从站老的地址和新的地址。可以用指令或用STEP 7-Micro/WIN的状态表(相当于STEP7的变量表)将上述信息写入VB220~VB222,然后调用图12-17中的子程序ASIx_WRITE,将VB220~VB222中的信息发送到从站。用子程序ASIO_READ接收从站发送的响应信息(见图12-16),存放在VB200开始的V存储区。由CP243-2的用户手册可知,该命令的返回信息有两个字节,1个字节为命令代码16#0D,2个字节为命令的状态字节。
4. 用CP 243-2 的命令诊断AS-i从站
通过CP 243-2的命令代码16#30,读取的AS-i从站列表LAS、检测到的AS-i从站列表LDS、*性的AS-i从站列表LPS和AS-i规范的标志。程序与图12-15~图12-17基本上相同,ASIx_WRITE的 Bank 值为 2,仅需要发送一个字节的命令代码 16#30。用ASIx_READ 读取的数据存放在DB_Ptr*的V存储区,前18个字节在Bank2,后10个字节在Bank3。Bank2的0号字节为16#30,1号字节为命令状态字节,2~9号字节为LAS,10~17号字节为LDS。Bank3的0~7号字节为LPS。每个从站占二进制的一位,0号从站在1个字节的高位,7号从站在1个字节的低位。
浔之漫智控技术(上海)有限公司专注于西门子等