只发PLC相关 随时更新~~   本次 三菱/西门子部分型号の功能 
一、三菱PLC定位控制

定位概要

FX3G · FX3U · FX3GC · FX3UC可编程控制器可以向伺服电机、 步进电机等输出脉冲信号, 从而进行定位控制。脉冲频率高的时候, 电机转得快;脉冲数多的时候, 电机转得多。

用脉冲频率、 脉冲数来设定定位对象(工件)的移动速度或者移动量。

嵌入式~PLC-专辑2_触点

定位基本图形 

1.基本单元(晶体管输出)

FX3G · FX3U · FX3GC · FX3UC可编程控制器中内置定位功能。

从通用输出(Y000~Y002)输出最大100kHz的集电极开路方式的脉冲串, 可同时控制3轴*1的伺服电机或者步进 电机。

嵌入式~PLC-专辑2_数据_02

2. 特殊适配器

特殊适配器使用FX3U可编程控制器内置的定位功能,输出最大200kHz的差动线性驱动方式的脉冲串,可同时控 制4轴的伺服电机或者步进电机。

FX3U可编程控制器最多可以连接2台高速输出特殊适配器(FX3U-2HSY-ADP)。

• 第1台FX3U-2HSY-ADP使用Y000、 Y004和Y001、 Y005。

• 第2台FX3U-2HSY-ADP使用Y002、 Y006和Y003、 Y007。

嵌入式~PLC-专辑2_嵌入式硬件_03

3.特殊功能模块/单元

FX3U · FX3UC可编程控制器可以连接特殊功能模块/单元, 进行定位控制。

此外, 特殊功能单元也可以独立进行定位控制。

1). FX3U可编程控制器的构成

FX3U可编程控制器中最多可以连接8台特殊功能模块/单元。

FX3U可编程控制器中最多可以连接8台特殊功能模块/单元。

嵌入式~PLC-专辑2_触点_04

2). FX3UC可编程控制器的构成

FX3UC可编程控制器中最多可以连接8台*1特殊功能模块/单元。

连接特殊功能模块/单元时, 一定需要FX2NC-CNV-IF或者FX3UC-1PS-5V。

嵌入式~PLC-专辑2_可编程控制器_05

*1. 与FX3UC-32MT-LT(-2)连接时, 最多可以连接7台。

*2. 与FX3UC-32MT-LT(-2)连接时, 从No.1开始。

3). 单独运行(FX2N-10GM, FX2N-20GM)

特殊功能单元(FX2N-10GM、 FX2N-20GM)可以不连接在可编程控制器上, 而独立运行。

• FX2N-10GM可以控制1轴的伺服电机或者步进电机。

• FX2N-20GM可以控制2轴的伺服电机或者步进电机。此外, 可扩展I/O(最多48点)。

 

嵌入式~PLC-专辑2_可编程控制器_06

二、西门子S7-200/300/400通讯方式

1.西门子 200 plc 使用 MPI 协议与组态王进行通讯时需要哪些设置?

1)在运行组态王的机器上需要安装西门子公司提供的 STEP7 Microwin 3.2 的编程软件,我们的驱动需要调用编程软件提供的 MPI 接口库函数;

2)需要将 MPI 通讯卡 CP5611 卡安装在计算机的插槽中,使用西门子公司提供的专用电缆和网络接头将 CP5611 卡和 S7-200 的 Port 口相连(CP5611 卡的 3,8 分别和 S7200的 PORT 口 3,8 连接),一般情况下 MPI 网络中连接最后一个设置得网络接头的终端电阻应打到 ON(有效)状态;

3)PLC 中 MPI 网络的创建和通讯波特率的正确设置;

4)在控制面板中 SetPG/PC 接口参数的设置;具体可参考组态王电子帮助。

2.组态王与西门子 200 plc 自由口协议通过 modem 通讯,硬件接线怎样实现?

设备上插标准 PPI 电缆,modem9 针口通过一个标准 232 交叉线接到 PPI 电缆上即可,232 交叉线的 modem 侧需要 1 4 6 短接,7 和 8 短接。

3.一台 S7 200 PLC通过串口方式能否接两个上位机通讯?

通过串行电缆的方式不行,可以考虑使用以下两种方式:

1)PLC 配置为 MPI 协议,这样两个上位机需要各配置一块 MPI 卡;

2)两个 PC 机中,一个作为采集站和 PLC 通讯,另外一个作为客户端和采集站通讯。

4.西门子 200Plc 通过 PPI 协议与组态王通讯失败,为何?

请检查如下设置是否正确:

1)用户编程电缆的拨码设置:在编程电缆的拨码中,第 5 个端子是设置通讯协议的:拨码设置为 0,表示 PPI/Freeport ;拨码设置为 1,表示 PPI(master);用户使用 PPI 协议和组态王通讯时,拨码选择 PPI/Freeport 对应拨码值即可;

2)PPI 通讯传输的是 11 位的数据,也就建议客户拨码选择 8 数据位 1 停止位偶校验(拨码默认为 11 位),并且 PLC 的波特率和 PPI、组态王要一致;

3)要求编程软件必须是离线时启动运行组态王。

5.西门子 200plc 通过 modbus 协议与组态王通讯时,组态王中定义的寄存器地址与plc 地址是如何对应的?

映射关系如下:0-Q,1-I,3、4、8、9-V;

3,4,8,9 的 dd 号与 PLC 中 V 寄存器的偏移地址(实际地址-1000)的对应关系:组态王中(寄存器的 dd 号-1)*2=PLC 中的 V 寄存器的偏移地址。组态王中 40031对应 PLC:VW1060 (组态王中寄存器 4 表示 SHORT 型变量)组态王中 90640 对应 PLC:VD2278 (组态王中寄存器 9 表示 FLOAT 型变量)。

6.西门子 200plc 通过 modbus 协议与组态王通讯,需要注意哪些事项?

需要注意如下几点:

1)需要向 PLC 中下载对应的初始化程序(KVmoddbus.mwp),由亚控提供。此程序默认的 plc 通讯端口为 port0,地址为 2,波特率 9600,无校验(地址和波特率可由程SBR0 中的 VB8,SMB30 进行修改);

2)由于 PLCModbus 协议程序占用 V1000 及以前的地址,所以用户在编写逻辑控制程序中用到的寄存器不能和亚控提供的协议中所占用的 V 区地址冲突;

3)西门子 S7200PLC 和通过 modbus 协议和组态王通讯时,CPU 上的开关必须拨在RUN 状态,否则 PLC 中的 modbus 通讯程序没有处于运行状态,组态王和设备通过自由口协议肯定通讯失败。

7.S7 300 MPI 电缆方式是否支持通过 GPRS 和组态王通讯?

不支持。

组态王的 GPRS 通讯方式要求必须创建虚拟串口并通过此串口进行数据通讯。而对于 MPI 协议,我们的 MPI 驱动是通过调用西门子 PLC 的专用动态连接库(s7onlinx.dll等)实现和 PLC 进行通讯的,并不是直接通过串口实现数据通讯。

其他类似调用方法的驱动,同样也不支持 GPRS 连接。

8.组态王和多台西门子S7-300、400 PLC 通过 DP 协议通讯时,设备地址应如何定义?

1)硬件连接:计算机中插入一块CP5611(或CP5613)可实现将多个S7-300/400PLC连接在一条 DP 总线上。

2)DP 协议设置:所有 PLC 必须设置的 DP Slave 站, CP5611(或 CP5613)要求通过 Simatic net 设置的 DP 唯一 master 站;

3)组态王中设备地址定义:选择 PLC/西门子/S7-200 系列(DP)/Profibus-DP ,设备地址固定为 1.1 (该地址与从站 PLC 的地址设置无关)。

9.西门子 300 plc 通过 MPI 通讯卡与组态王进行通讯时,能否实现双设备冗余的功能?

可以实现。

1)一个 cp5611 卡可以连接两台 s7300plc(使用西门子厂家提供的可编程插头来实现);

2)在组态王软件中建立两个 s7300plc,设备地址分别设备为 7.2 和 8.2(设备地址根据实际设备来设置),小数点前面的号指 plc 的地址,后面是 cpu 所在的槽号。这两个 plc 在 STEP7 编程软件中是单独定义的,所以除 plc 地址不一样,槽号是一样的;

3)在组态王中只须定义主设备的变量即可。

10.组态王和西门子 300、400PLC 通讯支持哪些通讯链路?是否需要西门子软件的支持?

1)MPI 电缆通讯方式:组态王所在的计算机必须安装 STEP7 编程软件;

2)MPI 通讯卡方式:组态王所在的计算机必须安装 STEP7 编程软件;

3)以太网通讯方式:不需要在组态王所在的计算机上安装 STEP7 或 Simatic net 通讯软件;

4)Profibus-DP通过方式:需要在本机上安装 STEP7 编程软件和 Simatic net 6.0(或以上版本)的通讯配置软件和授权;

5)Profibus-S7通过方式:需要在组态王所在的计算机上安装 STEP7 编程软件 ,但不需要安装SIMATIC NET 软件。

三、三菱PLC指令详解

取指令与输出指令(LD/LDI/LDP/LDF/OUT)

1)LD(取指令) 一个常开触点与左母线连接的指令,每一个以常开触点开始的逻辑行都用此指令;

2)LDI(取反指令) 一个常闭触点与左母线连接指令,每一个以常闭触点开始的逻辑行都用此指令;

3)LDP(取上升沿指令) 与左母线连接的常开触点的上升沿检测指令,仅在指定位元件的上升沿(由OFF→ON)时接通一个扫描周期;

4)LDF(取下降沿指令) 与左母线连接的常闭触点的下降沿检测指令;

5)OUT(输出指令) 对线圈进行驱动的指令,也称为输出指令。

指令取与输出指令的使用说明:

1)LD、LDI指令既可用于输入左母线相连的触点,也可与ANB、ORB指令配合实现块逻辑运算;

2)LDP、LDF指令仅在对应元件有效时维持一个扫描周期的接通;

3)LD、LDI、LDP、LDF指令的目标元件为X 、Y 、M 、T、C、S;

4)OUT指令可以连续使用若干次(相当于线圈并联),对于定时器和计数器,在OUT指令之后应设置常数K或数据寄存器;

5)OUT指令目标元件为Y、M、T、C和S,但不能用于X;

触点串联指令(AND/ANI/ANDP/ANDF)

1)AND(与指令) 一个常开触点串联连接指令,完成逻辑“与”运算;

2)ANI(与反指令) 一个常闭触点串联连接指令,完成逻辑“与非”运算;

3)ANDP 上升沿检测串联连接指令;

4)ANDF 下降沿检测串联连接指令;

触点串联指令的使用说明:

1)AND、ANI、ANDP、ANDF都指是单个触点串联连接的指令,串联次数没有限制,可反复使用。

2)AND、ANI、ANDP、ANDF的目标元元件为X、Y、M、T、C和S。

3)OUT M101指令之后通过T1的触点去驱动Y4称为连续输出。

触点并联指令(OR/ORI/ORP/ORF)

1)OR(或指令) 用于单个常开触点的并联,实现逻辑“或”运算;

2)ORI(或非指令) 用于单个常闭触点的并联,实现逻辑“或非”运算;

3)ORP 上升沿检测并联连接指令;

4)ORF 下降沿检测并联连接指令;

触点并联指令的使用说明:

1)OR、ORI、ORP、ORF指令都是指单个触点的并联,并联触点的左端接到LD、LDI、LDP或LPF处,右端与前一条指令对应触点的右端相连,触点并联指令连续使用的次数不限;

2)OR、ORI、ORP、ORF指令的目标元件为X、Y、M、T、C、S;

块操作指令(ORB / ANB)

ORB(块或指令)

1)用于两个或两个以上的触点串联连接的电路之间的并联;

ORB指令的使用说明:

1)几个串联电路块并联连接时,每个串联电路块开始时应该用LD或LDI指令;

2)有多个电路块并联回路,如对每个电路块使用ORB指令,则并联的电路块数量没有限制;

3)ORB指令也可以连续使用,但这种程序写法不推荐使用,LD或LDI指令的使用次数不得超过8次,也就是ORB只能连续使用8次以下;

ANB(块与指令)

1)用于两个或两个以上触点并联连接的电路之间的串联;

ANB指令的使用说明:

1)并联电路块串联连接时,并联电路块的开始均用LD或LDI指令;

2)多个并联回路块连接按顺序和前面的回路串联时,ANB指令的使用次数没有限制。也可连续使用ANB,但与ORB一样,使用次数在8次以下;

置位与复位指令(SET/RST)

1)SET(置位指令) 它的作用是使被操作的目标元件置位并保持;

2)RST(复位指令) 使被操作的目标元件复位并保持清零状态。SET、RST指令的使用,当X0常开接通时,Y0变为ON状态并一直保持该状态,即使X0断开Y0的ON状态仍维持不变;只有当X1的常开闭合时,Y0才变为OFF状态并保持,即使X1常开断开,Y0也仍为OFF状态;

SET 、RST指令的使用说明:

1)SET指令的目标元件为Y、M、S,RST指令的目标元件为Y、M、S、T、C、D、V 、Z。RST指令常被用来对D、Z、V的内容清零,还用来复位积算定时器和计数器;

2)对于同一目标元件,SET、RST可多次使用,顺序也可随意,但最后执行者有效;

微分指令(PLS/PLF)

1)PLS(上升沿微分指令) 在输入信号上升沿产生一个扫描周期的脉冲输出;

2)PLF(下降沿微分指令) 在输入信号下降沿产生一个扫描周期的脉冲输出,

利用微分指令检测到信号的边沿,通过置位和复位命令控制Y0的状态;

PLS、PLF指令的使用说明:

1)PLS、PLF指令的目标元件为Y和M;

2)使用PLS时,仅在驱动输入为ON后的一个扫描周期内目标元件ON,M0仅在X0的常开触点由断到通时的一个扫描周期内为ON;使用PLF指令时只是利用输入信号的下降沿驱动,其它与PLS相同;

主控指令(MC/MCR)

1)MC(主控指令) 用于公共串联触点的连接。执行MC后,左母线移到MC触点的后面;

2)MCR(主控复位指令) 它是MC指令的复位指令,即利用MCR指令恢复原左母线的位置;

在编程时常会出现这样的情况,多个线圈同时受一个或一组触点控制,如果在每个线圈的控制电路中都串入同样的触点,将占用很多存储单元,使用主控指令就可以解决这一问题。

MC、MCR指令,利用MC N0 M100实现左母线右移,使Y0、Y1都在X0的控制之下,其中N0表示嵌套等级,在无嵌套结构中N0的使用次数无限制;利用MCR N0恢复到原左母线状态。如果X0断开则会跳过MC、MCR之间的指令向下执行。

MC、MCR指令的使用说明:

1)MC、MCR指令的目标元件为Y和M,但不能用特殊辅助继电器。MC占3个程序步,MCR占2个程序步;

2)主控触点在梯形图中与一般触点垂直。主控触点是与左母线相连的常开触点,是控制一组电路的总开关。与主控触点相连的触点必须用LD或LDI指令;

3)MC指令的输入触点断开时,在MC和MCR之内的积算定时器、计数器、用复位/置位指令驱动的元件保持其之前的状态不变。非积算定时器和计数器,用OUT指令驱动的元件将复位,22中当X0断开,Y0和Y1即变为OFF;

4)在一个MC指令区内若再使用MC指令称为嵌套。嵌套级数最多为8级,编号按N0→N1→N2→N3→N4→N5→N6→N7顺序增大,每级的返回用对应的MCR指令,从编号大的嵌套级开始复位;

堆栈指令(MPS/MRD/MPP)

堆栈指令是FX系列中新增的基本指令,用于多重输出电路,为编程带来便利。在FX系列PLC中有11个存储单元,它们专门用来存储程序运算的中间结果,被称为栈存储器。

1)MPS(进栈指令) 将运算结果送入栈存储器的第一段,同时将先前送入的数据依次移到栈的下一段;

2)MRD(读栈指令) 将栈存储器的第一段数据(最后进栈的数据)读出且该数据继续保存在栈存储器的第一段,栈内的数据不发生移动;

3)MPP(出栈指令) 将栈存储器的第一段数据(最后进栈的数据)读出且该数据从栈中消失,同时将栈中其它数据依次上移;

堆栈指令的使用说明:

1)堆栈指令没有目标元件;

2)MPS和MPP必须配对使用;

3)由于栈存储单元只有11个,所以栈的层次最多11层;

逻辑反、空操作与结束指令(INV/NOP/END)

1)INV(反指令) 执行该指令后将原来的运算结果取反。反指令的使用如图10所示,如果X0断开,则Y0为ON,否则Y0为OFF。https://www.diangon.com/使用时应注意INV不能象指令表的LD、LDI、LDP、LDF那样与母线连接,也不能象指令表中的OR、ORI、ORP、ORF指令那样单独使用;

2)NOP(空操作指令) 不执行操作,但占一个程序步。执行NOP时并不做任何事,有时可用NOP指令短接某些触点或用NOP指令将不要的指令覆盖。当PLC执行了清除用户存储器操作后,用户存储器的内容全部变为空操作指令;

3)END(结束指令) 表示程序结束。若程序的最后不写END指令,则PLC不管实际用户程序多长,都从用户程序存储器的第一步执行到最后一步;若有END指令,当扫描到END时,则结束执行程序,这样可以缩短扫描周期。

在程序调试时,可在程序中插入若干END指令,将程序划分若干段,在确定前面程序段无误后,依次删除END指令,直至调试结束;

FX系列PLC的步进指令

1)步进指令(STL/RET)步进指令是专为顺序控制而设计的指令。在工业控制领域许多的控制过程都可用顺序控制的方式来实现,使用步进指令实现顺序控制既方便实现又便于阅读修改。

FX2N中有两条步进指令:STL(步进触点指令)和RET(步进返回指令)

STL和RET指令只有与状态器S配合才能具有步进功能。如STL S200表示状态常开触点,称为STL触点,它在梯形图中的符号为-|| ||- ,它没有常闭触点。

我们用每个状态器S记录一个工步,例STL S200有效(为ON),则进入S200表示的一步(类似于本步的总开关),开始执行本阶段该做的工作,并判断进入下一步的条件是否满足。

一旦结束本步信号为ON,则关断S200进入下一步,如S201步。RET指令是用来复位STL指令的。执行RET后将重回母线,退出步进状态。

1)状态转移图

一个顺序控制过程可分为若干个阶段,也称为步或状态,每个状态都有不同的动作。当相邻两状态之间的转换条件得到满足时,就将实现转换,即由上一个状态转换到下一个状态执行。

我们常用状态转移图(功能表图)描述这种顺序控制过程。用状态器S记录每个状态,X为转换条件。如当X1为ON时,则系统由S20状态转为S21状态。

状态转移图中的每一步包含三个内容:本步驱动的内容,转移条件及指令的转换目标。

步驱动Y0,当X1有效为ON时,则系统由S20状态转为S21状态,X1即为转换条件,转换的目标为S21步。

四、西门子PLC指令详解

指令( 英文全称意思 ):指令含义

1、LD ( Load 装载 ):动合触点
2、LDN ( Load Not 不装载 ):动断触点
3、A ( And 与 动合):用于动合触点串联
4、AN ( And Not 与 动断 ):用于动断触点串联
5、O ( Or 或 动合 ) :用于动合触点并联
6、ON ( Or Not 或 动断 ):用于动断触点并联
7、= ( Out 输出 ):用于线圈输出
8、OLD ( Or Lode):块或
9、ALD ( And Lode):块与
10、LPS ( Logic Push ):逻辑入栈
11、LRD ( Logic Read ):逻辑读栈
12、LPP ( Logic Pop ):逻辑出栈
13、NOT ( not 并非 ):非
14、NOP ( No Operation Performed ):无操作
15、AENO ( And ENO ):指令盒输出端ENO相与
16、S ( Set 放置 ):置1
17、R ( Reset 重置,清零 ):清零
18、P ( Positive):上升沿

19、N ( Negative):下降沿

20、TON ( On_Delay Timer ):接通延时定时器

21、TONR ( Retentive On_Delay Timer ):有记忆接通延时定时器
22、TOF ( Off_ Delay Timer ):断开延时定时器
23、CTU ( Count Up ):增计数器
24、CTD ( Count Down ):减计数器
25、CTDU ( Count Up/ Count Down ):增减计数器

26、ADD ( add 加 ) :加注意  

//ADD_I (_ I 表示整数) 

ADD_DI( DI表示双字节整数)

ADD-R (R 表示实数)

它们都是加运算只是数的大小不同。

27、SUB ( Subtract 减去,减少):减
28、MUL ( Multiply ):乘
29、DIV ( Divide ):除
30、SQRT ( Square root ):求平方根
31、LN ( Napierian Logarithm 自然对数 ):求自然对数
32、EXP ( Exponential 指数的 ):求指数
33、INC_B ( Increment 增加 ):增1

//其中_B代表数据类型 还有W(字节)、DW双字后面几个都是这样的。

34、DEC_B ( Decrement 减少 ):减1
35、WAND_B ( Word and 与命令 ):逻辑与 
36、WOR_B ( Word or 或命令):逻辑或
37、WXOR_B ( Word exclusive or 异或命令):逻辑异或
38、INV_B ( Inverse 相反 ):取反
39、MOV _B ( Move 移动 ):数据传送
40、BLKMOV_B ( Block Move 块移动):数据块传送
41、SWAP ( Swap 交换 ):字节交换
42、FILL ( Fill 填充 ):字填充
43、ROL_B ( Rotate Left 循环 向左):循环左移位
44、ROR_B ( Rotate Right 循环 向右):循环右移位
45、SHL_B ( Shift Left 移动向左):左移动
46、SHR_B ( Shift Right 移动向右 ):右移动
47、SHRB ( Shift buffer 移动缓存):寄存器移位
48、STOP ( Stop 停止 ):暂停
49、END /MEND ( End /Mend ):条件/无条件结束
50、WDR ( Watch dog reset ):看门狗复位
51、JMP ( Jump 跳):跳转https://www.diangon.com/wenku/plc/
52、LBL ( Label 位置 ):跳转标号
53、FOR ( For 循环 ):循环
54、NEXT ( Next 再下去):循环结束
55、SBR ( Subprogram Regulating子程序控制 ):子程序调用
56、SBR_T ( Subprogram Regulating Take ):带参数子程序调用
57、SCR ( Sequence Control 顺序控制 ):步开始
58、SCRT ( Sequence Control Transfer 顺序控制转移 ):步转移
59、SCRE ( Sequence Control End 顺序控制结束 ) :步结束
60、AD_T_TBL ( Add data to table 添加数据到表格中):填数据表
61、FIFO ( First in First out 先进先出 ):先进先出
62、LIFO ( Last in First out 后进先出 ):后进先出
63、TBL_FIND ( Table Find 表格查找 ) :表查找
64、BCD_I ( Binary Coded Decimal _I 二进制编码的十进制 ):BCD 码转整数
65、I_BCD ( I_ Binary Coded DecimaL ):整数转BCD码
66、B_I ( Bit to int ):字节转整数
67、I_B ( int to bit ):整数转字节
68、DI_I ( Double  int to int ):双整数转整数
69、I_DI ( int to double int ):整数转双整数
70、ROUND ( Round 取整 ):实数转双整数
71、TRUNC ( Trunc 截取 ):转换32位实数整数部分(舍去小数取整)
72、DI_I (double int to int ):双整数转实数
73、ENCO ( Encode 编码):编码
74、DECO ( Decode 译码):译码
75、SEG ( Segment decoder分断译码器 ):七段显示译码器
76、ATH ( ASCII码 turn hex ):ASCII码转16进制
77、HTA ( Hexadecimal to ascii):16进制转ASCII码
78、ITA ( // int to ascii):整数转ASCII码
79、DTA ( // double int to ascii ):双整转ASCII码
80、RTA ( // real to ascii): 实数转ASCII码
81、ATCH (//attach ):中断连接
82、DTCH ( Depatch ):中断分离
83、HDEF ( High speed counter definition ):高速计数器定义
84、HSC ( High Speed Counter 高速计数器 ):启动高速计数器
85、PLS ( Pulse 脉冲 ):脉冲输出
86、READ_ RTC ( Read real time clock 读实时时钟 ):读实时时钟
87、SET_RTC ( Set real time clock ):写实时时钟
88、XMT ( Transmitter ):自由发送
89、RCV ( Receive 接收 ):自由接收
90、NETR ( Net read 网络读 ):网络读
91、NETW ( Net write 网络写 ):网络写
92、GET_ADDR ( Get address 获取地址 ):获取口地址
93、SET_ADDR ( Set address 设置地址 ):设定口地址
94、PID ( Proportional Integral Differential 比例、积分、微分 ):比例积分微分调节器。