西门子中国授权代理商|S7-200CN代理商
建立状态表,通过强制,调试运行程序。
(1)创建状态表
用鼠标右键单击目录树中的状态表图标或单击已经打开的状态表,将弹出一个窗口,在窗口中选择“插入状态表”选项,可创建状态表。在状态表的地址列输入地址I0.0、C10、AC1、VD0、VD4、VD8、VD12。
(2)起动状态表
与可编程控制器的通信连接成功后,用菜单“调试→状态表”或单击工具条上的状态表图标,可起动状态表,再操作一次关闭状态表。状态表被起动后,编程软件从PLC读取状态信息。
(3)用状态表强制改变数值
通过强制C,模拟逻辑条件,方法是在显示状态表后,在状态表的地址列中选中“C”操作数,在“新数值”列写入模拟数值,然后单击工具条的“强制”图标 ,被强制的数值旁边将显示锁定图标。
(4)在完成对“C”的“新数值”列的改动后,可以使用“全部写入”,将所有需要的改动发送至PLC。
(5)运行程序并通过状态表监视操作数的当前值,记录状态表的数据。
递增、递减指令用于对输入无符号数字节、符号数字、符号数双字进行加1或减1的操作。指令格式如表1所示。
1. 递增字节(INC-B)/递减字节(DEC-B)指令
递增字节和递减字节指令在输入字节(IN)上加1或减1,并将结果置入OUT的变量中。递增和递减字节运算不带符号。
2. 递增字(INC-W)/递减字(DEC-W)指令
递增字和递减字指令在输入字(IN)上加1或减1,并将结果置入OUT。递增和递减字运算带符号(16#7FFF > 16#8000)。
3.递增双字(INC-DW)/递减双字(DEC-DW)指令
递增双字和递减双字指令在输入双字(IN)上加1或减1,并将结果置入OUT。递增和递减双字运算带符号(16#7FFFFFFF > 16#80000000)。
表1 递增、递减指令格式
说明:
(1)使ENO = 0的错误条件:SM4.3(运行时间),0006(间接地址),SM1.1溢出)
(2)影响标志位:SM1.0 (零),SM1.1(溢出),SM1.2(负数)。
(3)在梯形图指令中,IN和OUT可以为同一存储单元,这样可以节省内存,在语句表指令中不需使用数据传送指令
不同的商家的PLC有不同的编程语言,但就某个商家而言,PLC的编程语言也就那么几种。下面,以西门子PLC的编程语言为例,说明一下,各种编程语言的异同。
1、顺序功能图(SFC-Seauential Fuction Chart)
这是位于其它编程语言之上的图形语言,用来编程顺序控制的程序(如:机械手控制程序)。编写时,工艺过程被划分为若干个顺序出现的步,每步中包括控制输出的动作,从一步到另一步的转换由转换条件来控制,特别适合于生产制造过程。
西门子STEP7中的该编程语言是S7 Graph。
2、梯形图(LAD-LAdder Diagram)
这是使用使用多的PLC编程语言。因与继电器电路很相似,具有直观易懂的特点,很容易被熟悉继电器控制的电气人员所掌握,特别适合于数字量逻辑控制。
梯形图由触点、线圈和用方框表示的指令构成。触点代表逻辑输入条件,线圈 代表逻辑运算结果,常用来控制的指示灯,开关和内部的标志位等。指令框用来表示定时器、计数器或数学运算等附加指令。
在程序中,左边是主信号流,信号流总是从左向右流动的。
不适合于编写大型控制程序。
3、语句表(STL-STatement List)
是一种类似于微机汇编语言的一种文本编程语言,由多条语句组成一个程序段。语言表适合于经验丰富的程序员使用,可以实现某些梯形图不能实现的功能。
4、功能块图(FBD-Function Block Diagram)
功能块图使用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示,适合于有数字电路基础的编程人员使用。功能块图用类似于与门、或门的框图来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示“非”运算,方框用“导线”连在一起,信号自左向右。
5、结构化文本(ST-Structured Text)
结构化文本(ST)是为IEC61131-3标准创建的一种**的高级编程语言。与梯形图相比,它实现复杂的数学运算,编写的程序非常简洁和紧凑。
STEP7的S7 SCL结构化控制语言,编程结构和C语言和Pascal语言相似,特别适合于习惯于使用高级语言编程的人使用
为什么在FM350-1中选24V编码器,启动以后,SF灯常亮,FM350-1不能工作?
要检查一下,首先在软件组态中要选择编码器类型(为24V),再检查一下,FM350-1侧面的跳线开关,因为缺省的开关设置为5V编码器,一般用户没有设置,开机后,SF灯就会常亮。另外,还可以看看在线硬件诊断,可以看看错误产生的原因,是否模板坏了。
62: FM350-1的锁存功能是否能产生过程中断?
FM350-1的锁存功能是不能产生过程中断,但是可以产生过零中断。
FM350-1的装载值必须为零,随者锁存功能的执行(DI的上升沿开始),当前的计数值被储存到另一地址然后置为初始值零,产生过零中断,在OB40中可以读出中断并相应的锁存值。 锁存值也可以从FM350-1的硬件组态地址的前4个字节中读出。
63: 在FM350-1中,怎样触发一个比较器输出?
FM350-1中自带的输出点具有快速性、实时性,不必要经过CPU的映像区处理。输出点一般对应于比较器,首先在硬件组态中定义比较器输出类型,如:输出值为1或为脉冲输出,然后在程序中设置比较值。在FM350-1中,地址在通讯DB(UDT生成)块中为18(比较值1)、22(比较值2),类型为DINT,然后输出点28.0(DQ0)、28.1(DQ1),这样比较器就可以工作了。