您现在的位置是:首页 > PLC技术 > PLC技术

三菱FX系列PLC在SC-09下与上位机通信

来源:艾特贸易2017-06-05

简介在 PLC 网络的上、下位机主从式结构中,计算机为上位机,而面向现场的 PLC 为下位机,两者之间要用相应的接口模块连接来实现双方的通信。在三菱的各种通信接口中, SC-09 接口电缆

    PLC网络的上、下位机主从式结构中,计算机为上位机,而面向现场的PLC为下位机,两者之间要用相应的接口模块连接来实现双方的通信。在三菱的各种通信接口中,SC-09接口电缆既能用于FX全系列的PLC,在价格上又相对低廉,应用十分普遍。它在使用时需要用FXGP等通信软件,但FXGP没有全面地提供对PLC内部软元件进行读写的功能,因此,用户往往需要自行用高级语言来开发实用的通信程序。    本节将介绍用VB 6.0编制一个适用于三菱FX全系列PLCSC-09下的通信程序,该通信程序能读写字软元件的当前值和位映像组件的状态值,能选择单字、双字或多字批量的读写,能选择使用十进制或十六进制,还能对单独的位映像元件强制复位与置位。    6. 27所示界面的三菱FX系列通信程序采用VB 6.0MSComm控件来编程,具有更为完善的发送和接收功能。除了不能对PLC的定时器和计数器的常数设定值与文件寄存器内的数据进行读写外,FX系列PLC的所有开关量输入、输出以及各种软元件对本通信程序都是透明的。无论PLC处在STOP状态还是RUN状态,都可以按表6.3所列的命令对其进行各种操作。
读D0~D3的6个字节数据的多字符帧
    6.27    D0D36个字节数据的多字符帧    1.批量读字软元件与位映像组件    (1)批量读字软元件    读字软元件是指读取寄存器DTC的当前值。例如,要批量读取D0D36个字节的数据,可以用表6.3中第1条指令,再按照图6.9所示格式,得到批量读此数据块的多字符帧如图6. 28所示。其中,组软元件的首地址1000H正是D0的地址,字节数的取值范围为01H40H,即最多能读取64个字节,5A为校验和。
读D0~D3的6个字节数据的多字符帧
    6.28    D0~D36个字节数据的多字符帧    按图6. 28所示可以求出校验和SUM的值,先将从命令码起到ETX为止的各个字符的十六进制ASCII码值相加,即30H+31H+30H+30H+30H+30H+36H+03H=15AH,取最低两位数,则校验和SUM=5AH    下面给出在读命令按钮的单击事件中批量读的主要VB程序。

    上述程序中,当读取字节数Num1=2时,为16位字的读取.如定时器T0~T205、计数器C200以下和16位数据寄存器D;当Num1=4时,为32位字的读取,如计数器C200以上和32位数据寄存器D    (2) PLC对计算机批量读操作的响应    上述程序中,如果读操作正确,变量Setln中的内容就是读取的数据块的内容。设D0D3的数据按从低至高排列为“01 02 03 04 05 06”(D0为最低),则读响应多字符帧的格式如图6. 29所示。校验和值SUM是将第一字节内容到ETX之间的所有字符的十六进制ASCII码值相加,取和的最低二位,即SUM= 58H。如果读操作失败,PLC将响应NAK
PLC对计算机批量读响应的多字符帧
    6.29   PLC对计算机批量读响应的多字符帧    下面只给出读操作成功后,按十进制把SetIn中内容显示出来的主要VB代码。
    (3)批量读位映像组件及PLC的响应    读位映像组件是指读SXYMTC的状态值。这里批量读与PLC响应的多字符帧的格式与上面批量读字软元件类似,不同的是位映像组件的地址分配。例如,要读取输出线圈Y0Y17的状态,可以参照图6.28来得到用字符表达的多字符帧为:STX000A002ETX66    其中,组首地址00A0H正是Y0的地址,02H为字节数,66H为校验和。VB编程时,可将计算位映像组件的地址作为一个函数调用,其余部分程序就可与批量读字软元件共用。    2.批量写字软元件与位映像组件    (1)批量写字软元件    6.3中的第2条指令可以批量写入字软元件DTC的当前值。例如,要批量写入D0D36个字节的数据,设写入数据按从高至低排列为“01 02 03 04 05 06”。批量写此数据块的多字符帧格式如图6. 30所示。其中,组首地址1000H正是D0地址,字节数为06H(取值范围也为01H40H),B0为校验和。
写从D0~D3的6个字节数据的多字符帧
    6. 30    写从D0D36个字节数据的多字符帧    下面给出在写命令按钮的单击事件中批量写的主要VB程序。
    (2) PLC对计算机批量写操作响应    如果写操作正确,变量Setln中的内容就是ACKASCII码值6;如果写操作失败,Setln中的内容就是NAKASCII码值21    (3)批量写位映像组件及PLC的响应    批量写位映像组件SXYMTC的多字符帧格式与上面介绍的批量写字软元件类似,不同的是位映像组件的地址分配。例如,要写入从Y0开始的6个字节的数据,写入数据按从高至低排列为“01 02 03 04 05 06”,则对应的多字符帧只要把图6. 30中的组首地址改为Y0的地址00A0H,把校验和改为C0H就可以了。PLC对批量写位映像组件响应同(2)所述。    3.位映像元件的强制复位与置位    6.3中的第34条指令可以对单独的位映像元件XYMS以及定时器T和计数器C的逻辑线圈执行强制复位与置位。例如,要对Y0强制执行置位操作,其多字符帧格式如图6. 31所示。其中,元件首地址,即Y0的地址为0500H,但要按低位字节在前、高位字节数在后排列,校验和为FFH。这里位映像元件的地址分配与其批量读写时的地址是不同的。
对Y0强制执行置位的多字符帧
    6. 31    Y0强制执行置位的多字符帧    PLC对强制置位、复位的响应,也是写入正确时响应ACK,否则响应NAK