廊坊西门子PLC代理商
程序编辑器窗口的结构
程序编辑器的窗口可拆分为下列区域:
表格
"程序元素"选项卡将显示一个程序元素表格,其中的程序元素均可插入到LAD、FBD或STL程序中。"调用结构"选项卡表示当前S7程序中的块的调用层次。
变量声明
变量声明分为"变量表"和"变量详细视图"部分。
指令
指令表显示了将由PLC进行处理的块代码。它由一个或多个程序段组成。
详细资料
"详细情况"窗口中的各种不同选项卡提供了众多的功能,例如,用于显示出错消息、对符号进行编辑、生成地址信息、对地址进行控制、对块进行比较的功能以及对硬件诊断时的出错定义进行编辑的功能
创建逻辑块时的基本过程
逻辑块(OB、FB、FC)由变量声明段、代码段及其属性等组成。在编程时,必须编辑下列三个部分:
变量声明:在变量声明中,可指定参数、参数的系统属性以及块专用局部变量。
代码段:在代码段中,可对将要由可编程控制器进行处理的块代码进行编程。它由一个或多个程序段组成。要创建程序段,可使用各种编程语言,例如,梯形图(LAD)、功能块图(FBD)、或语句表(STL)。
块属性:块属性包含了其它附加的信息,例如由系统输入的时间戳或路径。也可输入自己的详细资料,例如名称、系列、版本以及作者,还可为这些块分配系统属性。
原则上,编辑逻辑块各部分的次序并不重要。当然,也可对其进行改正和对其进行添加。
LAD/STL/FBD程序编辑器的默认设置
在开始进行编程之前,应先熟悉编辑器中的设置,以便使编程更容易、更顺利。
使用菜单命令选项>用户自定义可打开用选项卡细分的对话框。在各种不同的选项卡中,为对块进行编程,可进行如下默认设置,例如,在"常规"选项卡中:
用于文本和表格的字体(字型和字号)。
对于新块,是否希望显示符号和注释。
使用查看 > ...菜单中的命令可在编辑期间修改语言、注释、以及符号等设置。
例如,可以改变用于突出显示"LAD/FBD"选项卡中的程序段或语句行的颜色。
块和源文件的访问权限
在编辑项目时,经常要使用公共的数据库,这意味着在同一时间内,可能有许多人想访问同一个块或数据源。
如下分配读/写访问权限:
离线编辑:
当您试图打开一个块/源文件时,将对此进行检查,以确定您是否具有该对象的"写"访问权限。如果块/源文件已打开,则只能使用备份进行工作。如果随后试图保存备份,则系统将询问是否希望覆盖原来的块或文件,或者以新的名称保存备份。
在线编辑:
当您通过所组态的连接打开一个在线块时,将关闭相应的离线块,以避免对其进行编辑。
程序元素表中的指令
概述窗口中的"程序元素"选项卡提供了LAD和FBD元素以及已声明的多重背景、预组态的块和来自库中的块。通过菜单命令视图 >表格可对选项卡进行访问。使用菜单命令插入 > 程序元素也可将程序元素插入到代码段中。
LAD中"程序元素"选项卡的实例
缩小
可按一定比例逐步地减小每个窗口(数据块、逻辑块、或STL源文件)的显示尺寸(包括字体)。
如要执行缩小功能,可按如下操作进行:
激活希望逐步缩小其内容的窗口。
选择菜单命令视图 > 缩小。如果尚未达到小缩放尺寸,则可再将当前显示减小一级。
缩放视图
对于每个窗口(数据块、逻辑块、或STL源文件),既可以通过输入一个缩放因子来增加或减小显示尺寸(包括字体),也可以将其恢复为标准尺寸。
要设置缩放因子,可按如下操作进行:
激活希望改变其内容的显示尺寸的窗口。
选择菜单命令视图 > 缩放因子。
在对话框中,输入所需要的设置值,并单击"确定"进行确认。
设置窗口拆分
逻辑块与源文件二者均将显示在拆分的窗口中。对于逻辑块,上半部分包括变量声明,而下半部分包括代码段。STL源文件的活动窗口将拆分为程序部分和出错消息列表。通过移动分隔线,可改变各个部分的尺寸。
按如下进行操作:
使用鼠标单击分隔线,按下鼠标按钮不动,沿着希望移动分隔线的方向拖动鼠标。
选择菜单命令窗口 > 移动拆分。这将选中分隔线,并可通过鼠标或使用方向键对其进行移动。
在编程语言之间进行切换
标准STEP 7软件包提供有三种编写块的编程语言:梯形图(LAD)、功能块图(FBD)、以及语句表(STL)。
激活想要为其改变编程语言的逻辑块的工作窗口。
选择以下菜单命令之一:
视图 > LAD,以便使用梯形图来编辑代码段。
视图 > FBD,以便使用功能块图来编辑代码段。
视图 > STL,以便使用语句表来编辑代码段
寻址和符号寻址
在STEP7程序中,使用地址如I/O信号、位内存、计数器、定时器、数据块和功能块。完全可以在程序中访问这些地址,如果使用地址符号,程序将更容易阅读(例如,Motor_A_On或其它符合公司或行业内代码系统的符号)。可以通过此符号访问用户程序中的地址。
地址
地址包含地址标识符和内存位置(例如,Q 4.0, I 1.1, M 2.0, FB21)。
符号地址
如果将符号名分配给地址,可以使程序更易读,并能简化故障排除。
STEP7可以自动地将符号名称翻译成所需要的地址。如果愿意使用符号名称访问ARRAY、STRUCT、数据块、本地数据、逻辑块和用户自定义数据类型,在使用符号寻址数据前,必须将符号名称分配给地址。
例如,可以将符号名称MOTOR_ON分配给地址Q4.0,在程序语句中将MOTOR_ON作为地址使用。使用符号地址,更容易识别程序中的元素与过程控制项目的组件的匹配程度。
支持编程
在编程语言梯形图、功能块图和语句表中,可以输入地址、参数和块名称,作为地址或符号。
使用菜单命令视图 > 显示 > 符号表示法,可以在地址的表示法和符号表示法之间切换。
为了更容易使用符号地址编程,可以显示地址和属于符号的符号注释。可以使用菜单命令视图 > 显示 >符号信息激活此信息。这意味着每个STL语句后的行注释中包含更多的信息。不能编辑该显示;任何改变都必须在符号表或变量声明表中进行。
下图显示在STL中的符号信息。
当打印输出一个块时,具有语句注释或符号注释的当前画面表示也被打印。
共享符号与局部符号
符号使您能够采用具有某种意义的符号名来代替地址进行工作。短符号和长注释的有效结合,可使编程更容易、程序文档的质量更好。
应注意区分局部(指定块)符号和共享符号之间的不同。
显示共享符号或局部符号
程序代码段中的共享符号与局部符号之间的差别可区分如下:
来自符号表中的符号(共享符号)将显示在引号".."内。
来自块的变量声明表中的符号(局部符号)将在前面冠以字符"#"。
引号或"#"无须输入。在梯形图、FBD或STL中输入程序时,语法检查将自动添加这些字符。
如果担心在某些情况下出现混淆,例如在符号表和变量声明中都使用同一个符号,那么当您要使用该共享符号时,必须直接对其进行编码(输入地址或者包括引号的符号)。此时,没有进行分别编码的任何符号都将解释为指定块(局部)的变量。
如果符号包含有空格,也必须对共享符号进行编码(输入地址或者包括引号的符号)。
当在STL源文件中进行编程时,将采用同样的特殊字符及准则。在自由编辑模式下,将不会自动添加代码字符,但如果您希望避免混淆,这些代码字符将仍然需要。
设置地址优先权(符号地址/地址)
在改变符号表中的符号、改变数据块或功能块的参数名称、改变引用组件名称的UDT或修改多重背景时,地址优先级有助于按照您的意愿调整程序代码。
当在下列情况下进行改动时,必须仔细设置地址优先级,并要有明确的目的。为了能从地址优先级中获益,在开始另一类型的改动之前,每个改动过程都必须彻底完成。
为了设置地址优先级,请转到SIMATIC管理器,并选择块文件夹,选择菜单命令编辑 >对象属性。在"地址优先级"选项卡中,可以进行与自己要求相适合的设置。
在地址优先级中进行优化设置要求区分下列改动情况:
纠正单个名称
实例:
在符号表或程序编辑器/块编辑器中,必须纠正名称的拼写错误。这适用于符号表中的所有名称,以及可以使用程序编辑器/块编辑器进行修改的所有参数、变量或组件的名称。
设置地址优先级:
跟踪改动:
在SIMATIC管理器中,选择块文件夹,选择菜单命令编辑 >检查块一致性。"检查块一致性"功能在单个块中进行必要的改动。
转换名称或分配
实例:
符号表中现有分配的名称已转换。
符号表中现有的分配被分配了新地址。
变量名称、参数名称或组件名称在程序编辑器/块编辑器中被转换。
设置地址优先级:
跟踪改动:
在SIMATIC管理器中,选择块文件夹,选择菜单命令编辑 >检查块一致性。"检查块一致性"功能在单个块中进行必要的改动。
新的符号、变量、参数或组件
实例:
正在为程序中使用的地址创建新符号。
正在向数据块、UDT或功能块中添加新的变量或参数。
设置地址优先级:
在符号表中的改动。
在程序/块编辑器中的改动。
跟踪改动:
在SIMATIC管理器中,选择块文件夹,选择菜单命令编辑 >检查块一致性。"检查块一致性"功能在单个块中进行必要的改动
Modbus地址实际上分为两种情况即plc作Modbus主站,Modbus地址和PLC手册里的地址一与PLC作从站,PLC不用管什么Modbus地址。
Modbus地址实际上分为两种情况。下面以西门子S7-200/S7-200SMART为例来说明:
种情况:PLC作Modbus主站,Modbus地址和PLC手册里的地址一致,例如作主站的S7-200的MBUS_MSG指令用于向Modbus从站发送请求消息,和处理从站返回的响应消息。要读取从站(另一台S7-200)的I0.0开始的地址区时,它的输入参数Addr(Modbus地址)为10001。S7-200从站保持寄存器的V区起始地址为VB200时,要读取从站VW200开始的V存储区时,保持寄存器的地址是40001。
第二种情况:PLC作从站,PLC不用管什么Modbus地址,等着主站来读写它的地址区就是了。
主站的计算机软件(例如dcs或组态软件)的编程人员需要编写实现Modbus通信的程序,需要确定ModbusRTU的报文结构。他们一般不熟悉PLC,PLC的编程人员往往需要和上位机软件的编程人员一起来讨论Modbus的报文结构。
容易出问题的就是报文里Modbus地址与PLC存储区地址的对应关系。曾经有工作人员做过的一个系统的上位机是专用的组态软件,通过分析GEPLC手册给出的CRC的循环异或计算实例每一步的中间数据,编写出了CRC计算的C语言程序。通过实验验证了Modbus报文结构和CRC的计算的可行性。
S7PLC手册给出的Modbus地址与Modicon公司和GE公司PLC使用的地址相同,是基于1的地址,即同类元件的首地址为1。而西门子plc采用的是基于0的地址,即同类元件的首地址为0。Modbus报文中西门子PLC的Modbus地址也采用基于0的地址。
PLC系统手册中的Modbus地址的高位用来表示地址区的类型,例如I0.0的Modbus地址为10001。因为地址区类型的信息已经包含在报文的功能码中了,报文中S7-200的I0.0的Modbus地址不是10001,而是0。报文中其他地址区的Modbus地址也应按相同的原则处理。例如当S7-200从站保持寄存器的V区起始地址为VB200时,VW200对应的保持寄存器在报文中的Modbus地址为0,而不是40001。