三菱FX系列PLC的模拟量模块是如何和三菱FX系列PLC进行数据传输的呢?在三菱FX系列 PLC内,设置了两个指令与模拟量模块进行数据传输。这两条指令就是读、写指令FROM 和 TO。由于这两条指令对数据处理仅限于读、写功能,应用十分不方便,不能应用众多的功能指令直接对数据进行处理,所以三菱在推出FX 3U 系列PLC时,开发了一个专门应用于特殊功能模块的缓冲存储器 BMF操作的编程软元件 U□\G□。使用这个编程软元件不但可以直接进行数据交换,还可以直接应用功能指令对数据进行处理,这对程序编制带来了极大的方便。当然,这个编程软元件仅适用于 FX 3 系列 PLC;而对于 FX 1S /FX 1N /FX 2N 系列PLC,仍然只能使用FROM和TO指令进行数据传输,然后再用功能指令进行处理。
1.位置编号和缓冲存储器BFM
1)特殊功能模块位置编号
当多个特殊模块与 PLC相连时,PLC对模块进行的读/写操作必须正确区分是对哪一个模块进行操作,这就产生了用于区分不同模块的位置编号。
当多个模块相连时,PLC特殊模块的位置编号是这样确定的:从基本单元最近的模块算起,由近到远分别是0#、1#、2#、…、7#特殊模块编号,如图3-1所示。
图3-1 特殊功能模块位置编号
但当其中如果含有扩展单元时,扩展单元不算入编号,特殊模块编号则跳过扩展单元,仍由近到远从0#编起,如图3-2所示。
图3-2 含有扩展单元的特殊功能模块位置编号
一个PLC的基本单元最多能够连接8个特殊单元模块,编号0#~7#。FX 2N PLC的I/O点数最多是256点,它包含了基本单元的I/O点数、扩展单元的I/O点数和特殊模块所占用的I/O点数。特殊模块所占用的I/O点数可查询产品手册得到。FX 2N PLC的模拟量模块一般占用8个I/O点,在输入点、输出点计算均可。
2)特殊功能模块缓冲存储器BFM
每个特殊功能模块里面有若干个 16位存储器,产品手册中称为缓冲存储器 BFM。缓冲存储器 BFM 是 PLC与外部模拟量进行信息交换的中间单元。输入时,由模拟量输入模块将外部模拟量转换成数字量后先暂存在 BFM 内,再由 PLC进行读取,送入 PLC的字软元件进行处理。输出时,PLC将数字量送入输出模块的BFM内,再由输出模块自动转换成模拟量送入外部控制器或执行器中,这是模拟量模块的BFM的主要功能。除此之外,BFM还具有如下功能。
(1)模块应用设置功能:模拟量模块在具体应用时,要求对其进行选择性设置,如通道的选择、转换速度、采样等,这些都是针对BFM不同单元的内容设置来进行的。
(2)识别和查错功能:每个模拟量模块都有一个识别码,固化在某个 BFM 单元里,用于进行模块识别。当模块发生故障时,BFM的某个单元会存有故障状态信息。
(3)标定调整功能:当模块的标定不能够满足实际生产需要时,可以通过修改某些BFM单元数值建立新的标定关系。
特殊模块的 BFM 数量并不相同,但 FX 2N 模拟量模块大多为 32个 BFM 缓冲存储单元,它们的编号是BFM#0~BFM#31。每个BFM缓冲存储单元都是一个16位的二进制存储器。在数字技术中,16位二进制数位一个“字”,因此,每个 BFM 存储单元都是一个“字”单元。在介绍模拟量模块的 BFM 功能时,常常把某些 BFM 存储单元的内容称为“××字”,如通道字、状态字等。
对特殊模块的学习和应用,除了选型、模拟量信号的输入/输出接线和它的位置编号外,对其 BFM 存储单元的学习是个关键,是学习特殊功能模块难点和重点。实际上,学习这些模块的应用就是学习这些存储器的内容跟它的读/写。推广来说,不管学习哪种模块,其核心都是BFM缓冲存储器的内容和其读/写。
PLC与特殊模块的信息交换是通过读指令FROM和写指令TO的程序编制来完成的。
2.特殊模块读指令FROM
特殊模块读指令FROM的指令格式如图3-3所示。
图3-3 特殊模块读指令FROM
解读:当X0接通时,把位置编号为m1的特殊模块中以BFM# m2为首址的 n 个缓冲存储器的内容读到PLC中以S为首址的 n 个16位数据单元中。
可用软元件为 m1:0~7;m2:0~32767;S:KnY、KnM、KnS、D、C、D、V、Z;n:1~32767。
下面通过具体例子来具体说明指令功能。
【例1】试说明指令执行功能含义。
(1)FROM K1 K30 D0 K1
把1#模块的BFM#30单元内容复制到PLC的D0单元中。
(2)FROM K0 K5 D10 K4
把 0# 模块的(BFM#5~BFM#8)4个单元内容复制到 PLC的(D10~D13)单元中。其对应关系是:(BFM#5)→(D10),(BFM#6)→(D11),(BFM#7)→(D12),(BFM#8)→(D13)。
(3)FROM K1 K29 K4 M10 K1
用1#模块BFM#29的位值控制PLC的M10~M25继电器的状态。位值为0,M断开;位值为1,M闭合。例如,BFM#29中的数值是1000 0000 0000 0111,那么它所对应的继电器M10、M11、M12和M25是闭合的,其余继电器都是断开的。
FROM指令也可32位应用,这时传送数据个数为2 n 个。
【例2】试说明指令执行功能含义。
DFROM K0 K5 D100 K1
这是FROM指令的32位应用,注意这个K1表示传送2个数据,指令执行功能含义是把 0#模块(BFM#5)→(D100),(BFM#6)→(D101)。
3.特殊模块写指令TO
特殊模块写指令TO的指令格式如图3-4所示。
图3-4 特殊模块写指令TO
解读:当X0接通时,把PLC中以S为首址的 n 个16位数据的内容写入位置编号为m1的特殊模块中以BFM# m2为首址的 n 个缓冲存储器中。
可用软元件为 m1:0~7;m2:0~32767;S:K、H、KnX、KnY、KnM、KnS、D、C、D、V、Z;n:1~32767。
TO指令在程序中常用脉冲执行型TOP。
下面通过具体例子来具体说明指令功能。
【例3】试说明指令执行功能含义。
(1)TOP K1 K0 H3300 K1
把十六进制数H3300复制到1#模块的BFM#0单元中。
(2)TOP K0 K5 D10 K4
把PLC的(D10~D13) 4个单元的内容写入位置编号为0#模块的(BFM#5~BFM#8) 4个单元中。其对应关系是:(D10)→(BFM#5),(D11)→(BFM#6),(D12)→(BFM#7),(D13)→(BFM#8)。
(3)TOP K1 K4 K4 M10 K1
把 PLC的M10~M25继电器的状态所表示的16位数据的内容写入位置编号为1#模块BFM#4缓冲存储器中。M断开,位值为0;M闭合,位值为1。
TO指令也可32位应用,这时传送数据个数为2 n 个。
【例4】试说明指令执行功能含义。
DTOP K0 K5 D100 K1
这是TO指令的32位应用,注意这个K1表示传送2个数据,指令执行功能含义是把PLC的(D100)、(D101)单元中内容复制到位置编号为 0#模块(BFM#5)、(BFM#6)缓冲存储器中。
4.特殊模块编程软元件U□\G□
三菱在推出FX 3 系列PLC时,开发了一个专门应用于特殊功能模块的缓冲存储BMF操作的编程软元件 U□\G□。使用这个编程软元件不但可以直接进行数据交换,还可以直接应用功能指令对数据进行处理,这为程序编制带来了极大的方便。编程软元件 U□\G□的内容与取值如表3-1所列。由于缓冲存储器BFM是一个16位的寄存器,所以U□\G□和数据寄存器D、V、Z一样是一个字元件(以下也称字元件U□\G□)。
表3-1 编程软元件U□\G□内容与取值
在功能指令中,字元件 U□\G□是作为操作数出现的,这样,就给特殊功能模块的缓冲存储器 BFM 的操作带来了很大的方便。
【例5】试说明指令执行功能含义。
(1)MOV U0\G0 D100
把0#模块的BFM#0单元内容复制到PLC的D100单元中。其功能相当于读指令FROM的功能。
(2)MOV D100 U0\G0
把PLC的D100单元内容复制到0#模块的BFM#0单元中。其功能相当于写指令TO的功能
(3)BMOV U2\G10 D0 K4
把 2# 模块的(BFM#10~BFM#13)4个单元内容复制到 PLC的(D0~D3)单元中。其对应关系是:(BFM#10)→(D0),(BFM#11)→(D1),(BFM#12)→(D2),(BFM#13)→(D3)。
(3)MOVP U1\G29 K4M10
用1#模块BFM#29的位值控制PLC的M10~M25继电器的状态。
【例6】试说明指令执行功能含义。
(1)ADDP U0\G5 D100 D100
把0#模块的BFM#5的数值与D100数值相加后又回到D100。
(2)INCP U5\G10
把5#模块的BFM#10单元中数值加1后又返回到该单元中。
(3)MOV HFF13 U2\G10Z
字元件 U□\G□也可以进行变址操作,如果 ZO中的数值是 K8,则指令的执行功能是把十六进制数HFF13复制到2#模块的BFM#18单元中。
三菱系列 PLC早期开发的特殊适配器仅有特殊通信适配器和特殊高速脉冲输入输出适配器。到FX 3 系列PLC出现后,才开发了仅供FX 3 系列PLC应用的特殊模拟量适配器。
特殊适配器安装在 PLC基本单元的左侧,和特殊功能模块不同,它不是通过数据线与PLC相连,而是通过连接端口与 PLC相连。特殊适配器与特殊功能模块的另一个显著区别,是特殊功能模块与 PLC的数据传输是通过编写对缓冲存储器进行读写程序进行的,而特殊适配器是通过特殊的辅助继电器和特殊数据寄存器进行的,因此不需要专门编制数据传输的程序。
1.与PLC连接及位置编号
特殊适配器安装在PLC基本单元的左侧,通过连接端口与PLC相连。图3-5为PLC基本单元左侧视图。图中2为连接适配器的连接口,但这个连接口仅供连接高速输入特殊适配器 FX 3U -4HSX-ADP和高速输出特殊适配器 FX 3U -2HSY-ADP用,它不能连接通信适配器和模拟量适配器。
如果要连接通信、模拟量适配器,则必须先折下左侧连接功能扩展板的盖板,然后先连接好功能扩展板。功能扩展板是指如表 3-2所示的功能扩展通信板等扩展选件。在功能扩展板上类似于图3-5中1的位置为通信适配器和模拟量适配器的连接口。如果不安装功能扩展板,基本单元上此处设有连接口。
图3-5 基本单元左侧视图
表3-2 FX 3U PLC功能扩展板
连接时,如果还有高速输入输出适配器选件,那模拟量适配器必须连接在高速输入输出适配器的后面,如图3-6所示。
一台PLC最多可以连接4台模拟量适配器,位置编号是最靠近PLC左侧的为第1台,然后依次为第2台、第3台、第4台。如果其中间还连接有其他非模拟量适配器,则这些非模拟量适配器不参与编号,如图3-7所示。
图3-6 模拟量特殊适配器连接图示
图3-7 模拟量特殊适配器位置编号
2.数据传输
模拟量特殊适配器内部没有缓冲器 BFM,它和 PLC的数据传输和设置是通过指定的特殊辅助继电器和特殊数据寄存器进行的。除了编写简单的设置程序外,不需要编制数据传输程序,这给用户带来了很大的方便。相比于特殊功能模块,适配器不占用PLC的I/O点数。
关于模拟量特殊适配器的具体使用,请参看后面章节的讲解。
3.定坐标指令SCL和SCL2
定坐标指令又叫作线性折线输出指令。在模拟量控制中,传感器的输出电信号与被测参数之间常常呈非线性关系。这时,为了保证系统的参数具有线性输出,就必须对输入参数的非线性进行“线性化”处理。其中一个方法叫作线性插值法,它是把一个非线性函数分成若干个区间,在每个区间内用一段直线来代替这段非线性曲线,这样,就把一个非线性关系变成了由若干段折线组成的线性关系,如图3-8所示。
图3-8 非线性关系的线性化处理
图3-8中,把各段折线的端点取做坐标点,各坐标点的数值是通过测试得到或人为指定的。每输入一个值,都会落在某个区间内,由此区间的直线可计算相应的输出值,如图中的A点。PLC是通过编制程序来完成上述过程的。首先,要在 PLC内存入各个坐标点的参数;其次,要判断输入值落入哪个区间;最后,再根据该区间的直线段方程计算出输出值。当折线段较多时,程序编制比较冗长、烦琐,容易出错,且占用存储量较大。
定坐标指令 SCL(SCL2)则弥补了上面的不足,使用定坐标指令同样要把各坐标点输入到指定的存储区,但是只要在指令中指定一个输入值,指令会自动完成输入值所在区间的搜索,然后根据该区间直线自动算出输出值并送到指定存储器中,不再需要编制任何程序。这样一步到位,十分方便。
在模拟量特殊适配器中,标定的修正就是利用定坐标指令来完成的,详见3.7节讲解。
1)定坐标指令SCL—( X , Y )坐标点顺序存储
定坐标指令SCL的指令格式如图3-9所示。
图3-9 定坐标指令SCL
解读:当X0接通时,将所设定的S1指令值代入由S2为首址的数据表格所形成的线性折线中,相对应的输出值送入D。
可用软元件为:
S1:KnX、KnY、KnM、KnS、T、C、D、R、K、H;
S2:D、R;
D:KnY、KnM、KnS、T、C、D、R。
执行定坐标指令时,用户必须先根据实际情况设计一个线性折线,如图3-8所示。 n 段折线必须有 n +1个端点,端点的坐标是用户根据实验结果或设计要求所确定的。每个端点都有一对坐标( X , Y )。折线的点的个数和每个端点的坐标都必须按规定送入一个连续的存储区域,形成一个数据表格。执行 SCL指令时,程序会自动将输入值 S1在折线的 X 值范围(图3-8中 X 1 ~ X 5 )里搜索,搜索完成后,会自动在所对应的折线段上计算出相应的输出值并送到D中保存。
SCL指令的数据表格格式如表3-3所示,该表是一个5个点4段折线的示例,如点数增加,再顺序添加即可。
表3-3 SCL指令数据格式存储表
对SCL指令应用,试举一例说明。
【例 7】如图3-10所示为某一传感器输入与输出数字量关系特性,试设计 SCL指令程序,读取当传感器输入为8mA和15mA时的输出数字量值。
图3-10 例7图
根据图3-10设计数据存储表格如表3-4所示,程序设计如图3-11所示。
表3-4 例7数据格式存储表
图3-11 例7程序梯形图
定坐标指令SCL在应用时,注意以下几点:
(1)数据表格存储时 X 点的数据没有按照由小到大顺序排列时出错。
(2)所设定的输入值必须在数据表格中的 X 1 ~ X n 之间,超出范围则出错。
(3)在32位运算时,坐标点各点之间的距离不能超过65535,运算过程中的数值不能超过32位数据所表示的范围。
以上 3项,有一项出错,则出错标志位 M8067为 ON,且错误代码 K6706保存在D8067中。
2)定坐标指令SCL2— X 、 Y 坐标顺序存储
定坐标指令SCL2的指令格式如图3-12所示。
图3-12 定坐标指令SCL2
定坐标指令SCL2的功能及应用完全和SCL指令一样,所不同的是坐标点的存储方式不一样。SCL指令是按照坐标点的坐标( X , Y )一个点一个点地顺序存储。而 SCL2指令是按点的 X 坐标顺序,然后再按 Y 坐标顺序存储。两者所占用的存储单元是一样的。
如图3-8,SCL 指令的存储顺序是: X 1 , Y 1 , X 2 , Y 2 , X 3 , Y 3 , X 4 , Y 4 , X 5 , Y 5 。而 SCL指令的存储顺序则是: X 1 , X 2 , X 3 , X 4 , X 5 , Y 1 , Y 2 , Y 3 , Y 4 , Y 5 。例如表 3-4 的 SCL2 指令的存储方式为表3-5所示。
表3-5 SCL2指令数据格式存储表