济宁西门子代理商
PLC基本指令及程序设计(S7-200为例)
一、PLC的基本逻辑指令
1、逻辑取及线圈驱动指令
1-1:逻辑取及线圈驱动指令:LD(load)、LDN(load not)、=(out) LD:用于网络块逻辑运算开始常开触点与母线的连接 LDN:取反指令,常闭触点与母线连接 =:线圈驱动指令 注:1、在分支电路块开始也要用LDLDN 2、并联的=可连续使用多次 3、在同一程序中不能用双线圈输出!!!即任一元件在程序中只能使用一次=指令 4、T和C作为输出线圈时不用=
1-2:取反指令NOT:逻辑取反。
2、触点串联指令
A(and)、AN(and not) A:与指令。用于单个常开触点的串联 AN:用于单个常闭触点的串联 注:1、A/AN可连续使用多次 2、连续输出电路可反复用=(不是在分支处,而是连续的输出(即在紧贴线圈之前)) 3、AAN操作数为:I Q M SM T C V S L
3、触点并联指令
O(or) ON(or not) O:或指令。用于单个常开触点的并联连接 ON:或反指令。用于单个常闭触点的并联连接 注:1、O/ON可连续使用
4、置位、复位指令
S bit,N(从bit位开始连续N个元件置1) R bit,N(从bit位开始连续N个元件清零) 注:1、两者对立,保持作用只有当相对的作用时才会释放。 2、S/R可以互换次序使用,写在后面的指令具有优先权 3、对T C复位 当前值被清零,但有其特殊性,后面说 4、N的常数范围0-255 也可用变量,一般用常量。
5、RS触发器指令
SR(Set Dominant Bistable):置位优先触发器指令。当置位信号(S1)和复位信号(R)都为真时,输出为真。 RS(Reset Dominant Bistable):复位优先触发器指令。 两个为RS触发器,不同的是在同时输入为1(S=R=1)时,哪个优先
6、立即指令
不受PLC循环扫描工作方式的影响。
立即取 LDI bit(I) 立即取反 LDNI bit(I) 立即或 OI bit(I) 立即或反 ONI bit(I) 立即与 AI bit(I) 立即与反ANI bit(I)
立即输出 =I bit
立即置位 SI bit,N(0~128)
立即复位 RI bit,N(0~128)
考虑到稳定性和快速执行,一般不用立即指令
7、边沿脉冲指令
EU(Edge Up) 在上升沿产生脉冲 ED(Edge Down) 在下降沿产生脉冲
(!!注:脉冲宽度为一个扫描周期,所以在程序的其他地方可以用到在此指令之后的线圈)
8、串联电路块的并联连接指令(OLD)
注意:1、块电路的开始也要用LD/LDN指令 2、每次完成一次块电路的并联时写上OLD命令(在并联完成之后) 3、OLD无操作数
实质:块电路完成逻辑运算后,结果存放在堆栈栈顶,OLD指令把栈顶上面两层的内容进行“或"操作,再将结果存放在栈顶。
济宁西门子代理商
2. PLC - PG/PC 远程链接
由于下列原因,在带被动DP接口的ET200S CPU中不能进行这种类型的链接:
在该运行作模式中,S7连接通过功能块“PG_DIAL"建立从PLC到本地TS适配器的连接。功能块“PG_DIAL"随TeleService软件提供并集成到已安装的STEP 7软件包中。“PG_DIAL"功能块内部调用S7基本通讯块:X_SEND和X_GET。然后,TS适配器自己通过已连接好的调制解调器自己建立到远程PG/PC的远程连接。在此连接中,应用程序(用PRODAVE MPI创建)扮演相应通讯伙伴的角色。在这种情况下,CPU必须承担建立连接的任务。只有CPU的接口为 主动的接口并具有MPI属性(通过 X 块支持S7基本通讯)才有可能。
图2:PLC-PG 远程链接
3. PLC - PLC 远程链接
该连接用于通过WAN的CPU-CPU通讯。至少一方必须主动建立连接(启动程序),为此,这一方的通讯接口必须为主动接口,而且S7基本通讯块可用(X_PUT,X_SEND,X_GET,X_ABORT)。另一方具有服务器功能即可,而且 被动接口亦可行。
将S7连接到本地TS适配器通过本地CPU中的功能块“PLC_DIAL"建立。功能块“PLC_DIAL"随TeleService软件提供并集成到已安装的 STEP 7软架包中。“PLC_DIAL"功能块提供到本地TS适配器的选择信息,之后TS适配器通过已连接的调制解调器建立到远程TS适配器的远程连接。数据传送期间,远程TS适配器如“透明路由器"一样动作。它建立远程CPU的S7连接,并且用远程CPU的操作固件执行X_GET和X_PUT任务而无需在远程CPU上使用具有此功能的用户程序。
ET200S CPU有一个被动接口,因而如服务器那样支持PLC-PLC远程连接,尽管只适用于引发设备(本地CPU)中的系统功能X_PUT和/或X_GET。之后,可以比较ET200S的PROFIBUS接口和MPI接口(PB地址 = MPI地址)。必须将ET200S连接到如同TS适配器一样的相同PROFIBUS段。在参数化TS适配器时,必须设置对应于ET200 CPU的PROFIBUS设置文件。
图3:PLC-PLC 远程链接
问题:如何计算当前程序所需的Local Data大小并合理设置S7 400 CPU属性中的Memory选项卡中的Local Data,S7 400 CPU中的Local data设置不当会导致什么问题?
回答:Local data顾名思义为本地数据,在西门子控制器中有一部分内存空间被设置为L区间,它被用于控制器在运行程序时存储临时数据。由于编写FB/FC程序的需要和OB中调用功能块结构的不同,不同的OB由于调用不同的FB/FC,因此所需的Local data的大小各不相同(被调用的FB/FC将占用当前调用他的OB块的Local Data资源)。在控制器硬件组态中的CPU属性设置中,Memory选项卡用于设置Local data的分配。如果相应OB块实际运行所需的Local data大于硬件组态中所设置的Local Data大小,那么相应的程序将无法运行,CPU将报告INTF错误,甚至更为严重的情况下CPU可能会停止运行。但如果盲目将Local Data的分配设置过大,将会浪费一部分宝贵的CPU内存空间。
S7 300CPU中的Local data不可修改,每个优先级固定设置为256 bytes,S7 400的Local data则可以人为修改。由此可以看出正确设置S7400 CPU的Local Data的大小非常重要。在控制器硬件组态中CPU属性? Memory选项卡的Local Data区域用于设置基于优先级的Local Data(如下图所示):
Pic1: Local Data的分配
在PCS7组态的项目中,在编译CFC程序后,系统将会自动计算各OB块所需的Local Data大小,可以通过交叉索引(Chart reference data ? Local data,如下图所示)查询到。
Pic2: Chart reference data ? Local data
而普通的由用户采用Step7编程方式编写的程序,程序功能块及OB块各自的调用结构由用户自行控制,需要在编写完整个程序之后自行计算。
- 上一篇:一级代理威海西门子代理商
- 下一篇:一级代理泰安西门子代理商