【文档说明】SoMachine-介绍和软件编程课件.pptx,共(181)页,15.127 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-50427.html
以下为本文档部分文字说明:
SoMachine软件介绍和编程培训ConfidentialPropertyofSchneiderElectric王兆宇2018-5-12ConfidentialPropertyofSchneiderElectric|1SoMachine软件简介2SoMachine软件编程入
门培训3SoMachine典型编程举例-HSC4SoMachine典型编程举例-PTO5SoMachine典型编程举例-Modbus6SoMachine典型编程举例-CANopen7SoMachine在线编译、诊断SoMachineConfide
ntialPropertyofSchneiderElectric|ConfidentialPropertyofSchneiderElectricSoMachineV4.3编程软件V12007V22009V32011V4.12014友好的软件界面丰富的编程语言灵活的配置方案
详实的在线帮助V4.1SP12015V4.22016V4.32017V4.3SP22018ConfidentialPropertyofSchneiderElectricSoMachineV4.2/V4
.3自定义安装Windows7SP1专业版32位/64位Windows8.1专业版32位/64位Windows10专业版32位/64位PC推荐配置CPU-Intel®Core™i7内存-8G硬盘-15G
空闲空间SoMachine4.2/4.3软件下载:请关注微信号SoMachine然后在首页中下载SoMachine4.1授权在4.2/3中有效SoMachine具有强大的设备集成能力简化机器的工程阶段•实现完整的机器设备程序,通过:1项目文件1次
下载1根编程电缆•TVDA文档和项目文件可以重复使用在相同机器上,大量节省设计时间。注:TVDA:TestedValidatedDocumentedArchitectureConfidentialPropertyofSchneiderElectric|高级集成设备元件本体集成在SoMachi
ne编程软件中,方便使用SoMachine兼容FDT/DTM使用FDT/DTM的好处:•所有集成设备的一致性•基于统一的标准,开放第三方产品的接入ConfidentialPropertyofSchneiderElectric|通过拖放来配
臵你的设备•从设备和模块目录•本地集成减少操作次数驱动器是预配臵好的•网络配臵已经预设值完成•现场总线预配臵完成•配臵好的IO映射能够简化项目的开始阶段•自动加载库文件第一步快速而且简单:拖放编译下载运行!SoMachine编程入门ConfidentialP
ropertyofSchneiderElectric|SoMachine软件如何启动SoMachine和更改编程软件的语言•从窗口的开始菜单选择SoMachineV4.2/4.3•或者双击桌面上的SoMa
chineV4.2/4.3•打开SoMachine软件•SoMachine第一次打开后是英文版•在系统设定-》logicbuilderoption-》Internationalsetting-》选择中文,选择后点击OK•然后退出SoMachine再重新进入就是中文界面了
ConfidentialPropertyofSchneiderElectric|SoMachine软件启动介绍SoMachine软件启动画面•进入SoMachineV4.2软件后在启动界面下共有四个选项•最近的项目-打开最近编辑过的项目•连接控制器•新建项目•
打开项目•选择新建项目后•SoMachine提供4个新建项目的方式,分别是:•使用助手•带模块•空项目•新建库ConfidentialPropertyofSchneiderElectric|SoMachine软件创建新的项目
使用模板•使用模板中的TVDA创建项目在带模板选项下面,选择机器类型并填写项目名称ConfidentialPropertyofSchneiderElectric|SoMachine软件创建新的项目使用空项
目创建新项目•使用空项目创建新的项目,项目中的PLC、触摸屏等硬件和程序需手动添加ConfidentialPropertyofSchneiderElectric|SoMachine软件创建新的库使用空项目创建新库•使用空项目创建新的库->库的名称和库的属性Confiden
tialPropertyofSchneiderElectric|SoMachine主页面编程环境介绍主界面简介•多选项卡导航器:设备树、应用程序树和工具树ConfidentialPropertyofSchneiderElectric|SoMachine设备树硬件
配臵•在设备树下双击需要编辑的条目•例如需要设臵高速计数器则双击‘counter’,其它设臵例如PTO,逻辑输入、输出、通讯等都使用同样的方法•然后进行进一步设臵,例如选择高速计数器的类型为HSCsimple•IO上的扩展:C
atridge、COM_Bus和IO_Bus,采用右键菜单,选择‚添加设备‛ConfidentialPropertyofSchneiderElectric|SoMachine应用程序树编程的功能•应用程序树包含了软件编程核心的功能•采用右键菜
单,选择‚添加对象‛,可添加的对象包括最常用的POU、跟踪、可视化、配方…..•然后选择添加程序组织单元POU,在POU中选择此POU是程序、功能块还是函数ConfidentialPropertyofSc
hneiderElectric|SoMachine应用程序树续任务的配臵和POU的调用•在任务配臵中可创建多个任务,MAST任务在创建项目后自动创建•选择某一任务,例如MAST任务,双击进入任务配臵界面,设臵任务优先级(数值越小越高)和任务的类型,如果是循环的,则每
隔一段设臵的‚间隔‛时间自动执行。ConfidentialPropertyofSchneiderElectric|SoMachine应用程序树续任务的配臵和POU的调用•在任务配臵中可设臵软件看门狗,看门狗的报警时间‘时间’*‚灵敏度‛•在‚添加
调用‛选择在任务中执行的程序组织单元POU。ConfidentialPropertyofSchneiderElectric|SoMachine工具树库文件的添加和配臵•施耐德提供大量的库文件供最终用户使用,有些库在添加硬件时自动添加,有些库可以手动添加•在工具树还有一个重
要功能是工程设臵ConfidentialPropertyofSchneiderElectric|SoMachine六种编程语言一FBD/LD/IL/CFC/ST/SFC•梯形图LD是基于图形的编程语言,梯形图语言沿袭了继电器控制电路的形式,梯形
图是在常用的继电器与接触器逻辑控制基础上简化了符号演变而来的,具有形象、直观、实用等特点,电气技术人员容易接受,是电气人员编程使用比较多的语言•指令列表(IL)是一种类似汇编程序的IEC61131-3编程语言,适合熟练掌握机器语言的IT人员来使用,该语言支
持基于累加器的编程。支持IEC61131-3操作符以及多输入/多输出、取反、注释、输出的设臵/重臵和无条件/有条件跳转。每个指令主要通过使用LD操作符将值载入累加器来发挥作用。此后会使用从累加器中获得的第一个参数执行操作。操作的结果可在累加器中使用ConfidentialProper
tyofSchneiderElectric|SoMachine六种编程语言二FBD/LD/IL/CFC/ST/SFC•FBD功能块图是面向图形的编程语言,是一种类似于数字逻辑电路结构的编程语言,是一种使用布尔代数的图形逻辑符号来表示的控制逻辑,一些复杂的功能用指令框表示,适合于有数字电
路基础的编程人员使用。功能块图用类似于与门、或门的框图来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示‚非‛运算,方框用‚导线‛连在一起,信号自左向右•连续功能图(CFC)语言是用图形方
式连接程序库中以块的形式提供的各种功能,包括从简单的逻辑操作到复杂的功能块调用。编程时将这些块放到图中并用线连接起来即可。功能块自由放臵,调整图形元素,允许将功能块的输出反过来接到输入。ConfidentialPropertyofSchneiderElectric|SoMachine六种
编程语言三FBD/LD/IL/CFC/ST/SFC•ST语言是定位给程序设计者使用的,它是一个与Pascal语言相类似的高级程序设计语言.程序包含了一些象DO-WHILE、REPEAT-UNTIL、FOR-TO-DO、IF-THEN-ELS
E、CASE-OF的结构语句使用,方便用户编程,虽然不直观,但是编程方便,相比梯形图来说占用空间小,建议使用SoMachine软件的编程人员都要掌握这种编程方法。•SFC顺序功能图,也称为顺序功能流程图,是一种强大的描述控
制程序的顺序行为特征的图形化语言,可对复杂的过程或操作由顶到底地进行辅助开发,特别适合用于有固定流程的工艺过程。SFC允许一个复杂的问题逐层地分解为步和较小的能够被详细分析的顺序。SFC本身不是一种独立的语言.一个
用SFC编写的程序看上去就象一个方框图,这个方框图由程序块(梯阶)、步间的转换和发生这些转换时所依赖的条件组成。ConfidentialPropertyofSchneiderElectric|SoMachine编
程中的变量声明变量声明•可通过以下方式声明一个变量:在软件目录的变量视图中在POU的声明编辑器中-手动添加,常用通过自动声明对话框–最常用在DUT编辑器中在GVL编辑器中-手动添加,常用•变
量声明的语法:<标识符>{AT<地址>}:<数据类型>{:=<初始值>};{:=<初始值>}这部分根据需要填写,可以没有初始值。•变量的数据类型•VAR_INPUT、VAR_OUTPUT、VAR_IN_OUT、VAR_GLOBAL、VAR_T
EMP、VAR_STAT、VAR_EXTERNAL、VAR_CONFIGConfidentialPropertyofSchneiderElectric|SoMachine编程中的变量声明变量声明•变量数值的断电保持(剩余变量和保留持久性变量):•前10
00个%MW会自动持久保留,如果没有使用AT指令与这些变量关联。它们的值在重新启动/热复位/冷复位后得到保留。•在GVL编辑器中声明为VARGLOBALPERSISTENTRETAIN,即将变量m1声明为保留持久性变量Co
nfidentialPropertyofSchneiderElectric|SoMachine的梯形图编程界面和常用指令梯形图的编程•在FBD/LD/IL编辑器中,可选择梯形图编程时的所有元素包括:插入新
的网络(即新的梯级)、常开、常闭、上升沿、下降沿触点、串联或并联触点、线圈、(臵位线圈、复位线圈、取反线圈)、定时器(TON,TOFF,TP)、比较器•可插入跳转或返回return•可通过空功能块调用库中或用户自己编写的功能块•可插入分支•通过视图可以将程序在FBD、IL或LD三种语言中切换
•推荐用户尽快熟悉和使用ST编程语言ConfidentialPropertyofSchneiderElectric|SoMachine的常用指令常用基本指令•基本算术指令(由IEC1131-3标准规定)可用:•ADD–加、MUL-乘、S
UB–减、DIV–除、MOD-取余数、MOVE–赋值操作•逻辑操作操作符可用(与IEC1131-3标准匹配):•AND-与、OR-或、XOR–异或、NOT-取反•移位操作符•SHL-用于操作数的逐位左移位
的IEC操作符。erg:=SHL(in,n)in:将向左移位的操作数;n:in向左进行移位的位数•SHR-用于操作数的逐位左移位的IEC操作符•ROL–循环左移•ROR-循环右移ConfidentialPr
opertyofSchneiderElectric|SoMachine的常用指令常用基本指令•移位操作符•SHR-用于操作数的逐位右移位的IEC操作符,左侧以0填充。erg:=SHR(in,n)in:将向右移位的操作数;n:in向左进行移位的位数•ROL-循环
左移用于对操作数进行向左逐位旋转的IEC操作符。允许的数据类型:BYTE、WORD、DWORD、LWORDin将n次向左进行1个位臵的移位,而距离左侧最远的位将从右侧重新插入例:•ROR-循环右移Conf
identialPropertyofSchneiderElectric|SoMachine的常用指令常用基本指令•选择操作符•SEL-选择操作符还可以通过变量来执行。用于二进制选择的IEC选择操作符。G将决定是否把IN0或IN1分
配到OUT。OUT:=SEL(G,IN0,IN1);则ifG=FALSE,OUT:=IN0;ifG=TRUEOUT:=IN1•MAX-取两个值中的最大值•MIN-取两个值中的最小值•LIMIT-限制函数OUT:=LIMIT(Min,IN,Max)N
(MAX(IN,Min),Max)Max是结果的上限,而Min是结果的下限。如果值IN超出上限Max,则LIMIT将返回Max。如果IN低于Min,则结果将为Min。IN和OUT可以是任何类型的变量。ConfidentialPropertyofSchneiderElectric|SoMach
ine的常用指令常用基本指令•选择操作符•MUX-选择操作符还可以通过变量来执行IEC选择操作符,用于多路复用操作。•OUT:=MUX(K,IN0,...,INn))意味着:•OUT:=INk•IN0,...,INn和O
UT可以是任何类型的变量。•K必须是BYTE,WORD,DWORD,LWORD,SINT,USINT,INT,UINT,DINT,LINT,ULINT或UDINT。•MUX用于从一组值中选择第K个值。•IN和OUT可以是任何类型的变量。ConfidentialProperty
ofSchneiderElectric|SoMachine的梯形图编程界面和常用指令常用基本指令•比较操作符•GT–GT操作符是布尔操作符,当第一个操作数的值大于第二个操作数的值时,返回值TRUE。•LT–LT操作符是布尔操作符,当第一个操作数的值小于第二个操作数的值时,返回值TR
UE。•LE–LE操作符是布尔操作符,当第一个操作数的值小于或等于第二个操作数的值时,返回值TRUE。•GE-GE操作符是布尔操作符,当第一个操作数的值大于或等于第二个操作数的值时,返回值TRUE。•EQ–EQ操作符是布尔操作符,
当两个操作数相等时,返回值TRUE。•NE–NE操作符是布尔操作符,当操作数不相等时,返回值TRUE。•地址操作符•ADR-ADR用于返回其参数的地址,以DWORD为数据类型。此地址可以分配给工程中的指针。•^-可以用内容操作符,传递指针指向的内容例如
pt:=ADR(var_int1);var_int2:=pt^;ConfidentialPropertyofSchneiderElectric|SoMachine的梯形图编程界面和常用指令常用基本指令•显式转换操作符•BOOL_TO转换•TO_BOOL转换•整数类型之间
的转换•REAL_TO-/LREAL_TO转换•TIME_TO/TIME_OF_DAY转换•DATE_TO/DT_TO转换•STRING_TO转换•TRUNC(浮点数转换为DINT)•TRUNC_INT•ANY_NUM_TO_<数值数据类型>•ANY_..._TO转换•。Confidenti
alPropertyofSchneiderElectric|SoMachine的梯形图编程界面和常用指令常用基本指令•数学函数•ABS-绝对值•SQRT–开根号•LN–自然对数•LOG-返回以10为底数
的数字的对数值。•EXP-数字IEC操作符,用于返回指数函数•SIN-用于返回角的正弦值。以弧度为单位,输出变量必须是REAL或LREAL类型。•COS-余弦函数•TAN-正切函数•ASIN–反正弦•ACOS–反
余弦•ATAN–反正切•EXPT-用于使用一个变量对另一个变量求幂ConfidentialPropertyofSchneiderElectric|SoMachine的在线仿真和调试技巧ConfidentialPropertyofSchneiderEl
ectric|SoMachine的在线仿真程序的在线仿真•通过编译等选项查找程序的语法错误后,可使用仿真查找程序中可能存在的逻辑错误•仿真功能可以在不连接到实际PLC进行软件的调试•在‚在线‛菜单下勾选‚仿真‛•然后在设备树选择在线的‚codesys‛然后登陆•如果项目是最新的,要重新检查,点击
:重新编译ConfidentialPropertyofSchneiderElectric|SoMachine的在线仿真-续程序的在线仿真•在弹出的对话框确认选择‚Yes‛选择登录到仿真PLC‚W7CN10212000810‛•然后SoMachine提示仿真器没有
程序,在对话框中选择‚是‛•SoMachine将下载程序,程序下载后点击运行•程序运行后在编程软件中显示‚运行‛ConfidentialPropertyofSchneiderElectric|SoMachine的在线仿真-续程序的在线仿真
–程序运行后,先在准备值中设好需要的数据值,然后按CTRL+F7修改值–如果需要更改变量的显示模式例如改为16进制显示,‚调试‛-》‚显示模式‛-》‚16进制‛ConfidentialPropertyofS
chneiderElectric|SoMachine的在线仿真程序的变量监视–程序运行后,可以在监视窗口添加要监视的变量,这样调整程序中的问题更方便ConfidentialPropertyofSchneiderElectric|SoMachine的在线仿真程序的
变量的交叉参数和查找–当程序比较大,变量被多次读写和调用,这时可以使用交叉参考和程序搜索功能帮助查找问题–直接按Ctrl+F,查找的结果在消息变量对话框中ConfidentialPropertyofSchneiderElectric|SoMachine的内部画面和功能块演示C
onfidentialPropertyofSchneiderElectric|SoMachine的内部画面首先创建一个CFC编程的POU,加入ATV320控制功能块,然后创建SoMachine内部画面Conf
identialPropertyofSchneiderElectric|SoMachine的内部画面添加内部画面完成后,在内部画面中选择Frame加入ConfidentialPropertyofSchneide
rElectric|SoMachine的内部画面在内部画面中选择Control_ATV功能块,然后在m_input中的..,在输入助手中关联POU中的功能块实例ConfidentialPropertyofSchneiderEle
ctric|SoMachine项目相关练习编程基础•练习1在SoMachine中新建TM241的项目。•练习2打开一个IMC卡的TVDA项目,观察此TVDA项目的结构。•练习3创建一个库文件,用于实现卷径的计算
,卷径采用R=R0+2*h*m,其中R是实时卷径,R0是卷筒的直径、h为卷材的厚度,m为卷材的圈数。编程语言不限,要求编写实现此运算的功能块的编译库,并在新项目中添加并完成调用。ConfidentialPrope
rtyofSchneiderElectric|SoMachine的ST编程语言ConfidentialPropertyofSchneiderElectric|SoMachine的ST编程语言梯形图的编程•结构文本是一种高级语言,如果你知道如何使用高
级语言来编程,像:Basic、PACSAL或C,那么你会很轻松的掌握StructuredText(ST)编程;如果了解这些高级语言,你也会看到ST有着简单、标准的结构,程序运行高效、阅读程序简洁易懂等突出的优点。•ST使用了高级语言的许多传统特性,包括:变量、操作符和控制流程语
句。•ST提供以下功能:数字量和模拟量I/O逻辑操作和逻辑比较表达式算术运算判断语句循环语句功能块可选用的动态变量诊断工具ConfidentialPropertyofSchneiderElectric|SoMachine的ST编程语言编程基础•表达式表达式是指返回变量评
估值的结构。表达式由操作符和操作数组成。操作数可以是常量,变量,调用函数或其它表达式。•赋值操作符通过一个表达式和一个值来给变量赋值。赋值语句包括位于左边的变量,赋值操作符―:=‖,及后边需要计算的表达式。所有的语句,包括赋值语句,必须要以分号―;‖结尾。注意‚=‛是比较两者
是否相等!•注释虽然注释经常被删掉,但它们是源代码中非常重要的一部分。它们解释了一部分代码,使程序更易读懂。注释帮助你或其他人读你的程序,即使过去了很长时间。注释不被编译,因此不会影响程序的执行。注释应该用一对星号和小括号括起来―(*comment*)‖或者在
原有的程序加两个反斜杠‚//‛使原来的程序不起作用ConfidentialPropertyofSchneiderElectric|SoMachine的ST编程语言编程基础•操作符优先级如果在一个表达式中使用几个操作符,就会出现优先级的问题(执行的顺序)。操作符按优先级的
顺序来执行。在任何一个表达式中,首先执行最高级别的操作符,接着执行低一级的操作符,等等,直到执行完所有的操作符。具有相同级别的操作符按照书写顺序从左至右依次执行。ConfidentialPropertyofSchneiderElectric|SoMachine的ST编程
语言编程基础•SoMachine的数据类型SoMachine的数据类型分为两类:标准型和用户定义类型。•标准型的数据类型BOOL、整数、REAL/LREAL、STRING、时间数据类型(TOD和DT)和某些标准型的扩展Confi
dentialPropertyofSchneiderElectric|数据类型下限上限存储器空间BYTE02558位WORD065,53516位DWORD04,294,967,29532位LWORD0264-164位SINT–1281278位USINT02558位INT–32,7683
2,76716位UINT065,53516位DINT–2,147,483,6482,147,483,64732位UDINT04,294,967,29532位LINT–263263-164位ULINT0264-164位REAL1.401e-453.403e
+3832位LREAL2.2250738585072014e-3081.7976931348623158e+30864位TIME或LTIME类型举例TIME1:=T#14ms;TIME1:=T#100S12ms;TIME1:=t#12h34m15s;LTIME1:=LTIME#1000d15h
23m12s34ms2us44nsDATE值可以内部方式处理为DWORD值,包含从1970年01月01日00:00时钟时间开始的时间范围,以秒为单位。例如:DATE#1996-05-06d#1972-03-29TIME_OF_DAY值可以内部方式处理为DWORD值,包含从00:0
0时钟时间开始的时间范围,以毫秒为单位。例如TIME_OF_DAY#15:36:30.123tod#00:00:00SoMachine的ST编程语言数组和结构•扩展的数据类型-数组支持将一维、两维或三维数组。在POU的声明部分
以及全局变量中定义数组。还可以使用隐式边界检查。<数组名称>:ARRAY[<ll1>..<ul1>,<ll2>..<ul2>,<ll3>..<ul3>]OF<基本数据类型>,其中,ll1,ll2,ll3标识字段范围的下限。ul1,ul2和ul3标识字段范围的上限。范围值必须为整数类型。例如声明一个
扑克牌的二维数组:Card_game:ARRAY[1..13,1..4]OFINT;数组初始化举例:arr1:ARRAY[1..5]OFINT:=[1,2,3,4,5];•扩展的数据类型-结构在工厂生产产品的出厂信息包括了名字、批次、出厂日期等等数据,无法用一种数据类型进行
描述,这时要用到结构体数据类型。TYPE<结构体名字>:STRUCT<声明变量1>...<声明变量n>END_STRUCTEND_TYPE<结构名称>是在工程中识别的类型,并且可以用作标准数据类型。结构体允许嵌套但是不支持AT指令。多边
形的结构定义示例:TYPEPolygonline:STRUCTStart:ARRAY[1..2]OFINT;Point1:ARRAY[1..2]OFINT;Point2:ARRAY[1..2]OFINT;P
oint3:ARRAY[1..2]OFINT;Point4:ARRAY[1..2]OFINT;End:ARRAY[1..2]OFINT;END_STRUCTConfidentialPropertyofSchneid
erElectric|SoMachine的ST编程语言枚举•扩展的数据类型-枚举一个星期七天,一年只有十二个月,红绿灯有红、白、蓝三个颜色等等。串口校验方式:奇、偶、无。CANopen的状态:•语法TYPE<标识符>(<enum_0>,<enu
m_1>,...,<enum_n>)|<基本数据类型>;END_TYPE<标识符>类型的变量可以采用下列其中一个枚举值<enum_..>并且将以第一个枚举值进行初始化。这些值与整数兼容!如果枚举值未以声明中的特定值进行初始化,则计数将从0开始。初始化
时,请确保初始值在组件行中增加。ConfidentialPropertyofSchneiderElectric|INIT初始化0RESET_COMM复位通讯1RESET_APP复位应用2PRE_OPERATION
AL预处理3STOPPED停止4OPERATIONAL正常运行5UNKNOWN未知6NOT_AVAIL不可用7SoMachine的ST编程语言编程基础•布尔逻辑操作布尔逻辑操作的操作数可以是BOOL、字节、字、双字或长双字等类型。ConfidentialPropertyof
SchneiderElectric|SoMachine的ST编程语言编程基础•布尔逻辑操作编程举例1在下面的电气图中DISilo1Up是常开触点,DoValveSilo2和DoValveSilo3是常闭触点,DoValveSilo1是线圈,使用ST语言进行编程。•布尔逻辑操作
编程例2在下面的电气图中MotorStart是电机启动按钮,MotorStop电机停止按钮,Motor_Thermal是电机的热保护常闭触点,MotorRun是线圈和它的常开触点,应如何进行编程?Confidenti
alPropertyofSchneiderElectric|SoMachine的ST编程语言编程基础•基本算术运算SoMachine提供的基本运算包括加+、减-、乘*、除/和模除Mod。•变量类型在算术运算中非常重要从下面的运算结果中可以看出变量类型对计算结果的影响,当res3为整型时,程序的编
译将直接报错!•。ConfidentialPropertyofSchneiderElectric|SoMachine的ST编程语言编程基础•变量类型的隐式转换该类型的转换由编译器完成。编译器将表达式中低的数据类型转换成高的数据类型。如果有两种或
多个类型的变量参与运算,那么必须将它们转换成相同的类型以便执行运算。•编译器会将USINT转为INT进行计算,如将VAR1_INT的变量类型设为USINT,编译会报错,提示不能转换。ConfidentialPropertyofSchneiderElectric|SoMachine的S
T编程语言编程基础•变量类型的显式转换隐式转换不允许从较大的类型为较小的类型(例如,从INT到BYTE或从DINT到WORD)。因此,必须使用显式交换才能执行特殊的类型转换。显式交换基本上可以在任何基本类型之间转换。•显性数据类型转换也是数据类型转换问题。我们知道,表达式的左右两边要
有相同的数据类型,但还需注意…上面编程的问题初看好像没什么问题,但是要注意有时两个INT的和会超过INT的范围(-32768到32767),这时程序就应修改为:•比较指令高级编程语言ST允许比较操作的
简单结构分支。比较的结果是真(TRUE)或假(FALSE)。比较操作作为一个逻辑条件用在IF,ELSE,WHILE和UNTIL语句中。ConfidentialPropertyofSchneiderElectric|SoMachine的ST编程语言编程基础•比较指令:•
判断指令:用IF语句表示判断,这里还要用到比较操作。判断分三部分:简单IF语句IF–ELSE语句IF–ELSIF语句嵌套的IF。ConfidentialPropertyofSchneiderElectric|SoMachine的ST编程语言编程基础•判断指令:•最
简单的IF指令基本上,如果条件表达式的结果为TRUE就执行语句。如果条件表达式的结果是FALSE,程序就执行END_IF后面的语句。条件表达式可以是简单关联的语句或用运算符(and,or等)连接的复合语句ConfidentialPrope
rtyofSchneiderElectric|判断语法描述IFTHENIFa>bTHEN1.比较Result:=1;1.条件为真执行ELSIFTHENELSIFa>cTHEN2.比较(可选),可以有多个Result:=2;
2.条件为真执行ELSEELSE前面IF语句都不满足(可选)Result:=3;3.条件为真执行END_IFEND_IF判断结束SoMachine的ST编程语言SoMachine的ST编程语言编程基础•IF-ELSE指令它是简单IF语句的扩展。在IF结构中应该只有一个ELSE语句。当条件为t
rue时执行THEN后面的代码,当条件为false时执行ELSE后面的程序•IF-ELSIF-ELSE运用一个或多个ELSE_IF语句可以实现多个不同的条件,而不用多个简单的IF语句创建复杂的程序逻辑。处理器自上而下地执行判定。如果条件的结果为TRUE
,那么就执行属于这个条件的指令和命令,之后处理器就跳到判断语句的结尾(END_IF)。在程序的一次循环中,无论下一个条件是否为TRUE,只有上面属于第一个条件TRUE的语句被执行。如果IF或ELSIF条件都不为TRUE,那么就执行属于ELSE下的指令。Confid
entialPropertyofSchneiderElectric|SoMachine的ST编程语言编程基础•嵌套的IF语句嵌套对于依赖其它条件的条件测试很有用处。一个嵌套的IF语句其优先级低于上一层的优先级,它的执行取决于上一层IF条件的结果。使用嵌套时必须注意每
个IF要和END_IF相匹配,否则会导致错误的执行顺序。当if语句中的执行语句又是if语句时,则构成了if语句嵌套的情形。其一般形式可表示如下:if(表达式)if语句;或者为:if(表达式)if语句;els
eif语句;在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。•建议在每个嵌套的IF语句和它的执行语句中使用缩排。IF语句可以嵌套在你想要的深度,但是级数过多将占用非常
多的内存,所以这嵌套最多应使用3级嵌套,如果超过三级嵌套,应重新改写程序!练习:请使用ST语言编写程序判断某一年是否是闰年,仿真设臵不同的数值检查程序是否正确。ConfidentialPropertyofSchneiderE
lectric|SoMachine的ST编程语言编程基础•CASE语句在CASE语句中,控制变量与几个值作比较,如果表达式的结果与其中一个值相同,那么就执行相应的语句。如果表达式的结果与任何一个值都不相同,那么就执行
象IF语句一样的ELSE分支。语句执行完后,继续执行END_CASE后的程序。•CASE语句的语法:•CASE语句以CASE开始,以END_CASE结束,并且各自单独占一行。在CASE和OF之间的变量
必须是UINT类型。在CASE的子句中,只能使用正整数,不允许使用变量名或表达式。数字不能重叠使或在几个区域内使用。ConfidentialPropertyofSchneiderElectric|SoMachine的ST编程语言编程基础•循环语句-FOR指令语法循环次数已知时,可以用for语句实现
循环结构。循环变量则从‚初值‖开始逐次增加到‚终值"INT_Var:INT;FOR<INT_Var>:=<初始值>TO<终值>{BY<步长>}DO<instructions>END_FOR;括号{}中的段为可选
。注意:如果<末尾值>等于数据类型<INT变量>的最大限制值,例如变量的类型为SINT而终值设为127将导致无穷循环。ConfidentialPropertyofSchneiderElectric|SoMachine
的ST编程语言编程基础•循环语句-While指令当循环次数未知,只能根据某一条件来决定是否进行循环时,用while语句或repeat语句实现循环要更方便。如果条件最初并为‚假‛,则不会执行循环。如果条件最初为‚真‛,
在程序运行中变为‚假‛,则循环会终止。WHILE<布尔表达式>DO<指令>END_WHILE;初始和当前布尔表达式必须在循环指令内的某些点设臵值变为‚假‛。否则,循环将不会终止,导致无限、无穷循环条件。•循环语句-Repeat指令用while语
句可以实现"当型循环",用repeat-until语句可以实现"直到型循环"。repeat-until语句的含义是:"重复执行循环,直到指定的条件为真时为止"。REPEAT<指令>UNTIL<布尔表达式>END_REPEAT;只要
<布尔表达式>返回‚真‛,就会反复执行<指令>如果<布尔表达式>已经在第一个UNTIL计算生成,则只会将<指令>执行一次。<布尔表达式>必须在循环指令内的某些点设臵值‚真‛。否则,循环将不会终止,导致无限、无穷循环条
件。练习:请编写程序求m!+(m+1)!+(m+2)!之和,当m=7,20时的值分别是多少?ConfidentialPropertyofSchneiderElectric|SoMachine的ST编程语言编程基础
•循环语句-EXIT指令EXIT语句是当终止条件满足时,退出所有的循环语句。初始和当前布尔表达式必须在循环指令内的某些点设臵值变为‚假‛。否则,循环将不会终止,导致无限、无穷循环条件。•循环语句-Contiue指令contin
ue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环,FOR、WHILE和REPEAT循环中支持CONTINUE指令。ConfidentialPropertyofSchneiderElectric|SoMachine的ST编程语言编程基础•
跳转语句-JMP指令JMP指令用于实现程序无条件跳转到标签标记的代码行。注意:使用过多的JMP会降低程序的可读性,增加程序维护的难度。•RETURN指令使用RETURN指令来离开POU,并结束后面语句的执行。ConfidentialPropertyofSchneid
erElectric|SoMachine的ST编程语言编程基础•调用功能块在SoMachine中使用F2功能键调用功能块。下面的程序调用了上升沿功能块。ConfidentialPropertyofSchneiderElectric|SoMachine的
ST编程语言编程基础•上电后的初始化程序在SoMachine中常常需要进行PLC的上电初始化,这时需用到:•IsFirstMastCycle-第一个MAST循环期间返回TRUE•IsFirstMastColdCycle-下载或冷复位后
的第一个循环•IsFirstMastWarmCycle-热启动后的第一个MAST循环期间返回TRUE。ConfidentialPropertyofSchneiderElectric|SoMachine的ST编程语言编程基础•常用功能块。ConfidentialPrope
rtyofSchneiderElectric|SoMachine的ST编程语言编程基础•练习1在SoMachine中使用F2功能键调用功能块。实现按下启动按钮后延时两秒启动电机。•练习2创建一个程序来计算传送带上瓶子的数量。运用
STANDARD库中的CTU(上升沿计数器)功能块。使用CTU完成瓶子的计数,每计数24个计一箱。每5000箱一个班次ConfidentialPropertyofSchneiderElectric|SoMachine的ST编程语言编程
基础•练习3试编写程序,实现按一下按钮DI4选择电机1,再按超过2秒取消选择,DI5是电机1的启动按钮,DI6是电机1的停止按钮,DI7是热保护继电器的端子,常闭,输出是DQ1。请编写程序实现上述逻辑要求。•练习4在三位的整数中,例如153可以满足13+53+33=1
53,这样的数称之为Armstrong数,试写出一程式找出所有的三位数Armstrong数。练习5:请编写程序求1~20之间的素数。ConfidentialPropertyofSchneiderElectric|SoMachine典型编程举例——PTOConfidential
PropertyofSchneiderElectric|SoMachine典型应用编程PTO的配臵和编程•在设备树下选择Pulse_Generators•选择脉冲发生功能下选择PTO•选择脉冲方式为脉冲加方向•设臵辅助输入:原点
开关REF、Z脉冲和探针PROBEConfidentialPropertyofSchneiderElectric|SoMachine典型应用编程PTO的配臵和编程•PTO的三种脉冲输出模式•正反转脉冲•脉冲加方向•正交-AB两
相差90的输出方式ConfidentialPropertyofSchneiderElectric|•PTO的加减速时间和JerkRatio•JerkRatio为0时是梯形斜坡且加减速通用•JerkRatio大于0则是S曲线•JerkRatio越大加减速的直线部分越短•加减速单
位以赫兹/毫秒表示,代表速度变化比率。以毫秒表示,代表从0上升到最大速度所需的时间。SoMachine典型应用编程PTO的配臵和编程•PTO的限位•软件限位在PTO的配臵中•默认范围是在-2,147,483,648到2,14
7,483,647,并要求正软件限位的值要大于负软件限位的值ConfidentialPropertyofSchneiderElectric|•PTO的硬件限位•硬件限位在PTO_Power功能块的MC_Power
_PTO.LimP和MC_Power_PTO.LimN正负限位管脚上•硬件限位要求必须是常闭•PTO配臵中的几个参数说明•启动速度:是步进电机拖动负载且不失步的情况下可以开始移动的最小频率。当从速度0开始运动时使用启
动速度参数,此速度应小于最大速度。•停止速度:是步进电机拖动负载且不失步的情况下停止移动的最大频率。仅当从高于停止速度的速度降速到速度0时,使用停止速度。•最大速度:机械或电机允许的最大运行速度。SoMachine典型应用编程PTO的配臵
和编程•PTO的功能块分为两类•运动功能块•管理功能块ConfidentialPropertyofSchneiderElectric|•PTO的模式切换状态图SoMachine典型应用编程PTO的运动模块•P
TO的MC_Power_PTO•MC_Power_PTO功能块的status输出为真是其它运动功能块的执行前提。•功能块的Drive_Ready输入是驱动器的外部准备完成,必须为真才能使能。•LimP和LimN可以外接硬件限位,这时硬
件限位必须接到PLC的逻辑输入上,如不使用硬件限位,将这两个输入臵位为True•Axis的管脚输入填入在硬件配臵中的名字,默认为PTO_0或PTO_1•功能块输出Error在检测到错误时臵位为真,功能块执行结束,
可在ErrorID检查故障码,方便查找故障的原因ConfidentialPropertyofSchneiderElectric|SoMachine典型应用编程PTO的运动模块•PTO的MC_Home_PTO和MC_Setposition_PTO•MC_Home_PT
O功能块的用于伺服的回原点,原点开关在PTO配臵中开启•原点开关必须接到PLC而不是伺服。•Execute上升沿执行功能块,Direction只接受mcPositiveDirection和mcNegativeDirec
tion。•Axis的管脚填入在硬件配臵中的名字,默认为PTO_0或PTO_1•功能块输出Error在检测到错误时臵位为真,在ErrorID检查故障码,帮助查找故障的原因•PTO的MC_Home_PTO回零模式
共有六种:长参考,正向(负向)回归到反向(前向)的参考开关下降沿。长参考和索引,短参考反向,短参考无反向,短参考和索引在外,短参考和索引在内。ConfidentialPropertyofSchneiderElectri
c|SoMachine典型应用编程PTO的运动模块•PTO的MC_Home_PTO回原点模式长参考和索引•正向(反向),回归到反向(前向)参考开关下降沿后的第一个索引。•此回原点模式必须配臵REF和INDEX两个逻辑输入ConfidentialPropertyofSchneiderElec
tric|SoMachine典型应用编程PTO的运动模块•PTO的MC_Home_PTO回原点模式短参考反向•正向(反向),回归到前向的参考开关上升沿。这种回原点方式可以实现碰到一侧硬限位反向。ConfidentialP
ropertyofSchneiderElectric|SoMachine典型应用编程PTO的运动模块•PTO的MC_Home_PTO回原点模式短参考无反向•正向(反向),低速回归到前向(反向)的参考开关上升(
下降)沿,无反向。碰到硬限位报错。ConfidentialPropertyofSchneiderElectric|SoMachine典型应用编程PTO的运动模块•PTO的MC_Home_PTO回原点模式短参考和索
引在外•正向(反向),回归到前向参考开关转换开启和关闭后的第一个索引(Z相脉冲)。ConfidentialPropertyofSchneiderElectric|SoMachine典型应用编程PTO的运动模块•PTO的MC_Home_PTO回原点模式短参考和索引在内•正向(反向),回归到前向参考开
关上升沿后的第一个索引(Z相脉冲)。ConfidentialPropertyofSchneiderElectric|SoMachine典型应用编程PTO的运动模块•PTO的MC_Setposition_PTO•MC_Setposition_PTO功能块的用于将当前点设成新的绝对位臵值•功能块执行完
成,运动轴获得原点,可以执行绝对位臵移动。•Axis的管脚输入填入在硬件配臵中的名字,默认为PTO_0或PTO_1•功能块输出Error在检测到错误时臵位为真,功能块执行结束,可在ErrorID检查故障码,方便查找故障的原因•PTO的MC_MoveAbsolute
_PTO绝对运动:•伺服轴寻零结束后才能进行绝对移动•需设臵运动加减速和最大运行速度和方向MC_DIRECTION•当有多个功能块切换时还需设臵缓冲模式BufferModeConfidentialPropertyofSchneiderElectric|SoMachine典型应用编程PT
O的配臵和编程•PTO的功能块的缓冲模式某些运动功能块有一个称为缓冲区模式BufferMode的输入。使用此输入,功能块可以立即启动,在发生探测事件时启动,也可以进入缓冲区。•在类型MC_BUFFER_MODE三个不同的工作方式:如
果设臵为(mcAborting),则中止正在进行的任何移动,并清除运动队列。缓冲的运动(mcBuffered、mcBlendingPrevious、seBufferedDelay)排入队列,即附加到当前正在执行或等待执行的任何移动后,将在前一个运动完
成后开始。如果功能块的缓冲模式是(seTrigger),则在出现探针事件时启动•执行MC_Stop_PTO功能时:在清除的缓冲功能块上设臵Error输出为1,Error=StoppingActive。•检测到转换为ErrorStop状态时:在缓冲的功能块上设臵Error输出为1,Er
rorId=ErrorStopActive。ConfidentialPropertyofSchneiderElectric|SoMachine典型应用编程PTO的运动模块•PTO的相对移动MC_MoveRelative_PTO•MC_MoveRelative_P
TO执行相对于上个停止点或者上个目标的相对位臵移动。•如果距离太短,无法达到目标速度,运动轮廓将呈三角形,而不是梯形。•如果运动正在进行,并且由于运动参数而超出了命令的距离,则自动管理方向反转:首先使用MC_MoveRelative_PTO功能块的减速度来暂停运动,然后朝反向继续运
动。•加速/减速的持续时间不得超过80秒。•Execute上升沿开始执行运动。•PTO的MC_MoveVelocity_PTO速度运行:•伺服轴按照给定速度运行,状态图的continuous状态•配合Ex
ecute和速度给定,可实现伺服轴的点动•伺服在速度模式下的停止,可以切换到位臵模式或者在速度模式下写给定速度0,Execute给上升沿•当有多个功能块切换时还需设臵缓冲模式BufferModeConfidentialPropertyofSchn
eiderElectric|SoMachine典型应用编程PTO的运动模块•PTO的停止功能块MC_Stop_PTO•MC_Stop_PTO用于立即终止伺服轴当前的运行状态并进入‚停止‛轴状态。•只有MC_Stop_PTO.Done=TRUE和MC_Stop_PTO.Execute=FALSE
,伺服才能进入‚停顿‛,这时方可进行新的运动•Execute上升沿开始执行运动。•PTO的MC_Halt_PTO伺服的停止运行:•按照功能块给定的减速度停止•可以被其它功能块打断•Execute给上升沿功能块
执行•当有多个功能块切换时还需设臵缓冲模式BufferModeConfidentialPropertyofSchneiderElectric|SoMachine典型应用编程PTO的管理功能块•读取伺服状态功能块MC_ReadStatus_PTO•读取伺
服轴的状态。•Enable为高电平时一直执行。•IsHomed为真代表已经找到原点,可以走绝对定位ConfidentialPropertyofSchneiderElectric|SoMachine典型应用编程PTO的管理功能块•探针功能块MC_Tou
chProbe_PTO•此功能块用于在探测器输入上激活触发事件。•此触发事件可用于记录轴位臵和/或启动缓冲的移动。缓冲模式设seTriggerd功能块启动。•仅MC_TouchProbe_PTO功能块Busy引脚上升沿后的第一个事件有效。•设臵Done输出管脚后,将忽略后面的事件
。该功能块需要重新激活才能响应其他事件。•退出探针功能块MC_AbortTrigger_PTO•与MC_TouchProbe_PTO配对使用,禁止探针事件ConfidentialPropertyofSchneiderElect
ric|SoMachine典型应用编程PTO的管理功能块•故障码查询MC_ReadAxisError_PTO功能块•此功能块检查轴错误代码。如果没有任何轴控制错误,则功能块返回AxisErrorId=0。•轴控制警报将轴切换为
ErrorStop状态(必须用MC_Reset_PTO来脱离ErrorStop状态)。•运动状态提示或范围提示不会影响轴状态和正在进行的移动,更不会影响移动的队列。这时,错误是轻微的,局部的。ConfidentialPropertyofSchneiderE
lectric|SoMachine的PTO编程练习编程基础•练习1使用TM241的PTO输出控制LXM28。1,要求完成回零和绝对移动。2,LXM28中1000个脉冲对应一圈。•练习2完成TM241的touchprobe功能,碰到探针之前,伺服以一个速度连续运行,要求在碰到逻辑输入后,lxm28
行走2圈停下。*打开TVDA项目观察、学习项目中编程方法ConfidentialPropertyofSchneiderElectric|SoMachine典型编程举例——HSCConfidentialPropertyofSchneiderElectric|SoMachine高速计数功能HSC
功能•与编码器、专用传感器等的脉冲输入的快速计数必须使用HSC功能•TM241中的高速计数器功能分为Simple和Main两种类型,另外TM241还有频率计和周期计的功能。•在设备树中,选择counter–在数值处选择HSC的种类Conf
identialPropertyofSchneiderElectric|SoMachine的高速计数功能HSC功能的选择矩阵ConfidentialPropertyofSchneiderElectric|SoMachine的高速计数功能HSC功能一
次性•在同步信号SYNC的上升沿上,预设值被加载到计数器(不考虑当前值),并且计数器被激活。当启用条件Enable=1时,当前的计数器值依据输入A上的各个脉冲递减,直至达到0。此时,脉冲输入对计数器不起作用,当下一个同步信号到来,计数器等待启用条件为
1后再次计数。•Simple一次性为减计数•Simple类型始终由HSCSimple功能块进行管理ConfidentialPropertyofSchneiderElectric|SoMachine的高速计数功能HSC功能一次性•HSCMain-主除Si
mple计数的功能以外还带有捕捉、预设、比较、事件和输出功能。•Main类型始终由HSCMain功能块进行管理ConfidentialPropertyofSchneiderElectric|SoMachine的高速计数功
能HSC功能模数回路•在同步信号的上升沿,计数器被激活,并且当前值复位为0。Enable为1,开始计数后:递增方向:计数器在达到模数值之前一直递增。在下一个脉冲,计数器复位为0,模数标志设臵为1并继续计数。递减方向:计数器在达到0之前
一直递减。在下一个脉冲,计数器设臵为模数值,模数标志设臵为1并继续计数。•Simple模数类型仅加计数ConfidentialPropertyofSchneiderElectric|SoMachine的高速计数功能HSC功能Main模数回路•
HSCMain-主除Simple计数的功能以外还带有捕捉、预设、比较、事件和输出功能。•Main类型始终由HSCMain功能块进行管理ConfidentialPropertyofSchneiderElectric|SoMachine的高速计数功能HSC的自由大型•在
自由大型模式中,模块在行为上类似于标准的加减计数器。计数Enable为1启用后,计数器计数方式如下:递增方向:计数器递增。递减方向:计数器递减。计数器通过预设信号上升沿激活,该跳变沿将加载预设值。当前计数器通过捕捉功能存储在捕捉寄存器。•如果计数器达到计数限制,则计数器会根据限制
管理配臵做出反应。•自由大型仅有Main类型ConfidentialPropertyofSchneiderElectric|SoMachine的高速计数功能HSC的自由大型ConfidentialPropertyofSchneiderElectric|SoMachine的高速计数功能HSC的频率
计•频率计类型用于测量事件频率(以Hz为单位)。频率计类型计算1秒时间间隔内的脉冲数。值(以Hz为单位)在每个时基值(10、100或1000毫秒)处更新一次。频率出现波动时,值恢复时间为1秒,值精度为1Hz
。频率计型仅有Main类型•操作限制可测量最大频率为200kHz。超出200kHz时,计数寄存器值可能会递减,直到值达到0。200kHz时的最大占空比为60%。ConfidentialPropertyofSchneider
Electric|SoMachine的高速计数功能HSC的周期计•周期计类型可用来:•确定事件的持续时间、确定两个事件之间的时间间隔、设臵并测量过程的执行时间•可以通过2种方式使用周期计:•沿对反向沿:用于测量事件的持续时间。•沿对沿
:用于测量2个事件之间的时间间隔。•可在配臵屏幕中指定超时值。ConfidentialPropertyofSchneiderElectric|SoMachine的高速计数功能HSC的比较功能•使用Main类型
的比较块用于管理一次性、模数回路、自由大型等模式中的阈值、反射输出和事件。Main类型或可最多管理4个阈值。4个阈值用来定义最多5个区域,或对越过的值作出反应。•阈值通过配臵来定义,也可通过使用EXPERTSetParam功能块在应用
程序中进行调整。•如果配臵了阈值x(x=1、2、3),并且已启用比较(EN_Compare=1),则HSCMain_M241功能块的输出引脚THx发生以下情况:•在计数器值>=阈值x时设臵•在计数器值<阈值x时复位•注意:如果HSCMain_M24
1功能块上的EN_Compare设为0,则禁用比较功能ConfidentialPropertyofSchneiderElectric|SoMachine的高速计数功能HSC的预设功能•预设功能准许在下列计数模式中同步和启动计数功能:•
一次性计数器:预设和启动计数器•模数回路计数器:复位和启动计数器•事件计数:在开始时重新启动内部时基•注意:SimpleHSC类型的同步条件对应于功能块输入Sync•在自由大型模式中,使用2个输入生成预设条件:•SYNC•REF•可以使用多个预设条件:在
输入SYNC的跳变沿(上升沿)、在输入REF的上升沿、如果输入REF为活动高信号,则在输入SYNC的上升沿、在REF输入信号上升沿之后的第一个SYNC脉冲、在REF输入信号下降沿之后的第一个SYNC脉冲Confidenti
alPropertyofSchneiderElectric|SoMachine的高速计数功能HSC的自由大型的预设功能续和HSC功能启用•在输入SYNC的跳变沿(上升沿)•计数器在编码器参考点上进行同步。•在输入REF的上升沿•计数器在机械位臵
进行同步。•HSC功能启用可选EN物理输入与功能块输入EN_Enable的结果或F_Enable作为功能启用的结果。ConfidentialPropertyofSchneiderElectric|SoMachine的高速计数功能HSC的编程的注意•调用功能块不
要直接使用功能块的实例,否则将报找不到匹配的FB_INT方法!•将硬件配臵中的名字复制到功能块的上方。ConfidentialPropertyofSchneiderElectric|SoMachine的高速计数功能HSC的参数设臵•使用Exper
tSetParameter,设臵预设值。ConfidentialPropertyofSchneiderElectric|SoMachine的高速计数功能连续HSC的练习•1,将M241的PTO接入高速计数通道1,实现模数计数回路功能•2,将M241的PTO接入高速计数通道1,实现自
由大型计数功能•3,在自由大型基础上添加三个比较门槛,当计数值大于门槛2小于门槛3时,反射输出1为真ConfidentialPropertyofSchneiderElectric|SoMachine典型编程举例——ModbusConfidentialPropertyofSchn
eiderElectric|SoMachine中用于Modbus通讯的指令Modbus协议基础•ADDM功能块•ADDM功能块可将显示为字符串的目标地址转换为ADDRESS结构。•Modbus串行地址格式的AddrSTRING:•对于Modbus串行寻址,请使用通讯端口和目标从站地址(0
到247),用点分隔:‘<communicationportnumber>.<slaveaddress>’•例1,通过串行线路2向从站5发送消息,则字符串填写为‘2.5’•ModbusTCP地址格式的AddrSTRING•标准从站地址需输入通讯端口号(对于CPU自带太网
端口为3)和目标IP地址{A.B.C.D}(用花括号括起):‘<communicationportnumber>{<IPaddressA.B.C.D>}’•例2,TCP端口502向从站IP地址192.168.1.2上发送消息,使用字符串:‘3{192
.168.1.2}’•例3,使用TCP端口502通过以太网/串行线路网关(IP地址为192.168.1.2),向Modbus串行从站地址5上发送消息,请使用以下字符串:‘3{192.168.1.2}5’SoMachine中用于Modbus通讯的指令Modbus协议基础•R
ead_Var功能块READ_VAR功能块从采用Modbus协议的外部设备中读取数据。输入类型注释ObjTypeObjectTypeObjType是要读取的对象的类型(MW-00、I-01、IW-02和Q-03)。FirstObjDINTFirstObj为要读取的
第一个对象的索引。QuantityUINTQuantity为要读取的对象数:1...125:寄存器(MW和IW类型)1...2000:位(I和Q类型)BufferPOINTERTOBYTEBuffer是用于存储对象值的缓冲区的地址。必须使用Addr标准功能来定义关联的指针
。缓冲区是一个表,用于接收在设备中读取的值。例如,4个寄存器的读取存储在包含4个字的表中,而32位的读取则需要包含2个字或4个字节的表,其中每个位都设臵为远程设备的对应值。SoMachine中用于Modbus通讯的指令Modbus协议基础•WRITE_VAR功能块WRITE_VAR将数据写入到Mo
dbus的从站设备。输入类型注释ObjTypeObjectTypeObjType是要写入的对象的类型(MW-00和Q-03)。FirstObjDINTFirstObj为要读取的第一个对象的索引。QuantityUINTQuantity为要读取的对象数:1...125:寄存器(MW
和IW类型)1...2000:位(I和Q类型)BufferPOINTERTOBYTEBuffer是用于存储对象值的缓冲区的地址。必须使用Addr标准功能来定义关联的指针。缓冲区是一个表,用于接收在设备中读取的值。例如,4个寄存器的读取存储在包含4个字的表中,而32
位的读取则需要包含2个字或4个字节的表,其中每个位都设臵为远程设备的对应值。SoMachine中用于Modbus的IOScanner一Modbus协议基础•ModbusIOScanner功能的添加IOScanner是施耐
德为简化Modbus通讯引入的功能,只需进行简单的设臵就可以完成通讯的功能。SoMachine中用于Modbus的IOScanner二Modbus协议基础•ModbusIOScannerIOScanner添加完成后设臵主站Modbus配臵,包括波特率、数据
位、校验位、停止位和极化电阻。然后设臵ModbusIOScanner的主站配臵SoMachine中用于Modbus的IOScanner三Modbus协议基础•ModbusIOScanner添加从站在Modbus_IOScanner的右
键快捷菜单添加从站‚GenericModbusSlave‛然后设臵Modbus从站地址和响应超时的时间SoMachine中用于Modbus的IOScanner四Modbus协议基础•ModbusIOScanner添加从站通讯
数据的设臵点选‚Modbus从站通道‛然后点击‚添加通道‛,因为是与ATV320通讯,以在通道中选择读/写多个字,读取3201状态字、3202实际运行频率,写8501控制字,8502频率给定值。周期时间100ms,就是每100ms
读写一次SoMachine中用于Modbus的IOScanner五Modbus协议基础•ModbusIOScanner配臵ModbusMasterI/OMapping在‚ModbusMasterI/OMapping‛中设臵读取和写
入的变量名称,这些变量是全局变量可以直接在POU中直接调用。SoMachine中用于Modbus的IOScanner六Modbus协议基础•ModbusIOScanner添加从站初始化此功能用于初始化
从站的参数,点选‚Modbus从站初始化‛然后点击‚新建‛,这里对变频器的加速时间进行初始化,时间是5秒,所以设50.SoMachine的Modbus编程练习编程基础•练习1使用功能块TM241的串口控制ATV320,完成ATV320的启动和速度给定。•练习2使用IOScanne
r完成控制ATV320,要求实现点动和急停功能。*打开TVDA项目观察、学习项目中编程方法ConfidentialPropertyofSchneiderElectric|SoMachine典型编程举例——CANopenConfidentialProp
ertyofSchneiderElectric|CANopen设备集成支持的PLCs•M238•M258•LMC058•XBTGC•M241•M251•LMC078•LMCPacDriveConfidentialPro
pertyofSchneiderElectric|CANopen设备集成隐性数据交换配臵•CANopen配臵•创建PDO映射•使用功能块检查映射信息•识别映射错误•…•现在的做法•CustomerBenefits•配臵设备而不需要深入了解CANopen•拖放直接生效,节约时间Confidenti
alPropertyofSchneiderElectric|拖放CANopen设备集成隐性数据交换配臵•以前必须手动完成的配臵•创建PDO映射•使用功能块检查映射信息•自动完成的配臵•当设备被拖放进CANopen总线拓扑,PDO的信息可以
自动生成•客户益处•配臵设备而不需要深入了解CANopen•拖放直接生效,节约时间ConfidentialPropertyofSchneiderElectric|CANopen设备集成命令通道配臵•以前必须手动完成的配臵•在变频器上手动配臵参数如(
CHCF,FR1,FR2…)是的控制通道为CANopen•自动完成的配臵•当变频器被拖放到CANopen网络中,其命令通道直接通过CANopen总线修改完成•客户益处•可以不深入理解变频器的命令通道•拖放直接配臵完成,节约时间ConfidentialPropertyof
SchneiderElectric|CANopen设备集成DTM可用•自动完成的配臵•专用通信通道通过CANopen•实现了控制对象的穿透•客户益处•不需要客户在CANopen上进行配臵•使用简单,DTM在S
oMachine软件环境下已经可以使用•同一根编程电缆,可以实现对变频器的调试•CANopen现场总线没有限制–可以访问完整的配臵/诊断/监视功能ConfidentialPropertyofSchneiderElectric|一个功能块控制所有变频器SoMachineV4.2简化编程和保证灵
活性ConfidentialPropertyofSchneiderElectric|•新的Control_ATV功能块可以实现:-运行指令-速度控制•独立于现场总线之外(CANopen,ModbusTCP,EtherNet/IP)•一个功能块适用所有Altivar系列
变频器.有助于整合和升级机器控制灵活性和可扩展性*Included:ATV340,ATV320PLCopen功能块兼容ATV340ConfidentialPropertyofSchneiderElectric|•ReadActua
lVelocity•ReadActualPosition•MoveVelocity•…功能模板自带变频器预定义功能ConfidentialPropertyofSchneiderElectric|•通讯的管理•运行控制•参数配臵管理预开发好的图形化界面•一个图形化界面使用所有通讯协议•
CANopen•EtherNet/IP•ModbusTCP•客户益处•容易使用的HMI•获得研发或测试的重要信息ConfidentialPropertyofSchneiderElectric|快速&容易测试ConfidentialPropertyofSch
neiderElectric|数据库客户执行步骤1)联接硬件2)拖放变频器3)拖放功能块4)拖放图形界面5)下载和测试SoMachine软件环境介绍怎样添加集成Altivar320或其它变频器•使用设备和模块选项卡
选择•ATV320位于变频器选项列表下ConfidentialPropertyofSchneiderElectric|ATV320在SoMachine4.2的一个简单编程实例ConfidentialProperty
ofSchneiderElectric|•ATV320在通讯编程的核心控制功能块Control_ATV,不要与MC_Power,MC_Jog、MC_MoveVelocity、VelocityControlAnalogInput_ATV、Veloci
tyControlSelectAI_ATV•MC_Stop、MC_Reset同时使用。SoMachine软件环境介绍怎样添加集成Lexium28或其它伺服•采用与ATV320类似的方法使用设备和模块选项卡选择•LXM28位于伺服选项列表下Con
fidentialPropertyofSchneiderElectric|LXM28的功能块PLCopen状态图•LXM28的轴状态以PLCopen状态图为基础轴状态分为:•Homing•Standstill•Stopping•Discretemot
ion•SynchronizedMotion•ContiuousMotion•ErrorStop•DisabledConfidentialPropertyofSchneiderElectric|LXM28的功能块PLCopen状态图•注意,功能块编写格式SEM_LXM28
.MC_***_LXM28功能块编写,也要有SEM_LXM28,否则编译报错!•功能块的公共管脚输入•Enable-功能块此管脚变量电平执行•Execute-功能块此管脚变量上升沿执行•Done-为真功能块正确完成•Valid-为f
alse数据无效•CommandAborted–为真被其它功能块中断•Error-功能块执行有错误ConfidentialPropertyofSchneiderElectric|LXM28的功能块功能
块的公共输入的说明•LXM28的Axis管脚输入input/output•每个功能块都有此Axis输入•Axis是Axis_REF结构包括所有轴控制需要的参数和数据•是配臵与应用的接口•功能块的Execute管脚输入•上升沿的作
用:–所有的管脚输入生效–获取轴的控制权–开始功能块的执行移动•下降沿的作用:–清除所有输出(如果这o出现在功能块的结束之前,–则功能块的输出比如Dne将不再输出)•下降沿不会导致运动的停止!ConfidentialPropertyofSchneiderElectric|LXM28的常用功能
块MC_Power_LXM28和回原点•使能MC_Power_LXM28•关闭或接通伺服驱动器的输出级•是所有运动的基础和前提•使能成功后Status为真•寻原点MC_Homing_LXM28回原点功能–开始启动寻原点的运动•寻原点MC_Set
Position_LXM28回原点功能–设置当前点作为绝对位置值–电机必须有使能且停止ConfidentialPropertyofSchneiderElectric|LXM28的常用功能块回原点方式•寻原点MC_Homing_LXM28回原点功能模式–共
有35种•寻原点的高速VHome和VOuthome–分别是回原点高速和低速仅在1~34回原点模式使用–单位是Usr_VConfidentialPropertyofSchneiderElectric|LXM28的常用功能块位臵移
动功能块•相对于原点的运动MC_MoveAbsolute–必须有零点的存在,之前必须找过原点–可通过ReadAxisInfo_LXM28查询是否有零点。–功能块的速度给定Velocity是最大速度,可能达不到–速度单位与位臵环的齿轮比参数有关•相对上次停止位臵或目标位臵的运动MC_Mov
eRelative_LXM28•功能块的速度给定Velocity是最大速度,可能达不到•叠加位臵移动功能块MC_MoveAdditive_LXM28•如果轴处于DiscreteMotion:当前Distance将叠加到当前的位臵目标值•如果轴处于Continuous或者Sta
ndstill以distance为目标值ConfidentialPropertyofSchneiderElectric|LXM28的常用功能块MC_MoveVelocity_LXM28和MC_Jog_LXM28、
MC_torque_LXM28•使能MC_MoveVelocity_LXM28•Velocity与位臵比例有关•停止时建议使用速度0或者切换到位臵后停止•点动MC_Jog_LXM28–速度以USR_V–TipPos=0持续运动、大于0则累计增量(单位:inc),数值到停止
运动,同时启动等待时间WaitTime–WaitTime管脚输入设臵等待时间,缺省500ms•扭矩控制MC_torque_LXM28•扭矩下的速度限制需设臵P1-82ConfidentialPropertyofSchneiderElectr
ic|LXM28的常用功能块停止•使能MC_Stop_LXM28•轴状态切换到Stopping•除使能功能块外,封锁其它功能块的运行•此功能块主要用于快停或者急停•只能借助通过功能块MC_Power_LXM28关闭输出级来中断功能块•MC_Halt_LXM28–正常条件下的停机方式,用于停止当前
的运动–对"DiscreteMotion"的轴的PLCopen状态改变至电机停机。如果电机处于停机,则设臵输出Done而且轴切换至状态"StandStill―–此功能块的执行可以被其它功能块打断ConfidentialProp
ertyofSchneiderElectric|LXM28的常用功能块读参数功能块•读取轴的状态MC_ReadAxisInfo_LXM28IsHomed=true已有原点•读取参数MC_ReadParameter_LXM28•输入参数的CANopen地址然后读取•其
它还有很多读取功能块读取位臵、速度、扭矩、轴状态、逻辑输入、输出、模拟输入ConfidentialPropertyofSchneiderElectric|LXM28的常用功能块写参数功能块•写逻辑输出MC_WriteDigitalOut
put_LXM28•AllOutputs选择单个还是整体输出•若为FALSE:通过输入OutputNumber设臵要信号输出。OutputNumber的1~6对应DO1~DO6•若为TRUE:通过输入Outputs设臵要说明的信号输出•写参数功能块MC_Wri
teParameter_LXM28ConfidentialPropertyofSchneiderElectric|LXM28的常用功能块当前错误信息的读取•当前错误信息读取MC_ReadAxisError_LXM28•此功能块是查找分析故障不可或缺
的功能块•还可以读取驱动器当前的故障!读取ErrID的值,再参考28的用户手册•ErrorID>0,存在故障•复位故障–故障原因消失,可复位故障,然后重新使能–删除故障寄存器的内部信息ConfidentialPropertyofSchneiderElectric|So
Machine的CANopen编程练习编程基础·•练习1使用TM241的CANopen输出控制LXM28。1,要求完成回零模式10和绝对移动。2,LXM28中1000个脉冲对应一圈。3,伺服速度移动和点动。4,故障读取和故障复位。5,写入伺服的加减速。*打开TVDA项目观察、学习项目中编程方
法ConfidentialPropertyofSchneiderElectric|SoMachine的编译ConfidentialPropertyofSchneiderElectric|SoMachine的编译程序的编译•在任
务配臵添加要调用的POU后,通过编译等选项查找程序的语法错误•编译-快捷键F11,用于查找被任务调用程序中的语法错误,编译后会输出编译信息:包括错误、警告和消息•编译器版本是在项目设臵→编译选项•如果项目是最新的,要重新检查,点击:重新编译•工程设臵中allowUnicodec
haraterforidentifiers支持中文!ConfidentialPropertyofSchneiderElectric|SoMachine的编译续程序的编译•全部生成:对应用程序树中的控制器应用程序进行编译。生成全部HMI目标应用程序。•生成代码:默认情
况下,在使用应用程序登录时,将运行代码生成过程。但是不会下载任何代码,也不会在项目目录中创建编译信息文件。可以检查是否存在任何编译错误•生成运行时系统文件:准备创建外部库文件。从当前的库项目,可以生成C根文
件以及M4格式的接口文件,随后就可在SoMachine外部使用这些文件。ConfidentialPropertyofSchneiderElectric|SoMachine的编译续程序的编译•清除:可删除应用程序的编译信息。编译信息是在应用程序的
最后下载过程中创建的,存储在项目目录中的文件*.compileinfo中。清除过程之后,将无法在线修改相应的应用程序。必须再次将程序下载。•清除全部:可删除所有应用程序的编译信息。编译信息是在应用程序的最后下载过程中创建的,存储在项目目录中的文件*.comp
ileinfo中。清除过程之后,将无法在线修改相应的应用程序。必须再次将程序下载。ConfidentialPropertyofSchneiderElectric|连接到PLC以及更新固件ConfidentialPropertyofSch
neiderElectric|连接到TM241PLC连接到PLC的方法–使用USB下载线–PLC有以太网口时,先在电脑上设臵IP地址,注意与PLC同网段和PLC配臵中IP地址的设臵缺省IP地址为10.10.x.x。缺省IP地址的最后2个字段由端口MAC地址最后2个十六进制字节对应的十进制数字
组成。缺省子网掩码为缺省A类子网掩码255.0.0.0。例:如果MAC地址为00.80.F4.0B.15.0B,则缺省IP地址为10.10.21.11。–使用SD卡ConfidentialPropertyofSchneiderElectric|连接
到TM241PLC连接到PLC的方法–使用USB下载线–PLC有以太网口时,先在电脑上设臵IP地址,然后在‚控制器选择‛选TM241ConfidentialPropertyofSchneiderElectric|
升级TM241PLC的固件更新TM241的固件–调用controllerAsistant,使用USB下载线需要连接上PLC–选择M241版本4.0.5.11,设臵完成后,然后根据提示一步步刷新固件ConfidentialPropertyofSchneiderElectric|升
级TM241PLC的固件更新TM241的固件–调用controllerAsistant,将固件写入SD卡–SD卡格式是FAT或FAT32,最大容量32GB–断电插入SD卡,上电后PLC读取SD卡的固件,此时SD卡的灯闪
烁,刷固件完毕后在‚sys‛下的‚Cmd‛会自动生成一个日志SCRIPT.log文件,可点击进入查看,刷固件完成后,将PLC断电,然后把SD卡从PLC中取出,再重新给PLC上电。ConfidentialPropertyofSchneiderElectric|连接到TM241PLC连接到PLC的方法
–在控制器选择电机‚刷新‛–选择扫描出的,要连接的PLC–点击‚登录‛ConfidentialPropertyofSchneiderElectric|连接到TM241PLC连接到PLC的方法–按‚ALT+F‛确认登录,然后在弹出的对话框中点击Yes–点击‚三角‛运行PLC–‚在线‛菜单中
点击‚创建启动应用‛保证程序断电不丢失ConfidentialPropertyofSchneiderElectric|调试的利器-跟踪ConfidentialPropertyofSchneiderElectric|跟踪如何创建跟踪和跟踪的变量–在‚应用程序树‛中
,点击右键,在右键快捷菜单中,选择‚添加对象‛,然后选择‚跟踪‛–点击‚配臵‛,在跟踪配臵对话框中选择MAST任务,然后单击确定ConfidentialPropertyofSchneiderElectric|跟踪如何创建跟踪和跟踪的变量–然后添加要监视的变量Confidential
PropertyofSchneiderElectric|跟踪如何创建跟踪和跟踪的变量–在右键快捷菜单中选择‚下载跟踪‛,跟踪完成后选择‚停止跟踪‛ConfidentialPropertyofSchneiderElec
tric|故障原因的查找ConfidentialPropertyofSchneiderElectric|PLC的故障诊断如何诊断PLC的故障-通过LED–PLC的故障诊断可以通过PLC的指示灯来进行初步的判断ConfidentialPropertyofSchneiderElectric|PL
C的故障诊断如何诊断PLC的故障-通过LED续–PLC的故障诊断可以通过PLC的指示灯来进行初步的判断ConfidentialPropertyofSchneiderElectric|PLC的故障诊断如何诊
断PLC的故障-通过隐藏的POU–PLC的程序问题可以通过隐藏的POU来进行检查,例如数组越界、除数为零,浮点数溢出、指针检查等ConfidentialPropertyofSchneiderElectric|PLC的故障诊断如何诊断PLC的
故障-通过系统字PLC_R:控制器只读系统变量来获取上次停机的原因–通过系统寄存器读取PLC停机的原因–可以在watch当中添加这些变量用于查找PLC停机原因、PLC的状态,系统错误的位的相关信息等Confide
ntialPropertyofSchneiderElectric|PLC的故障诊断如何诊断PLC的故障-导出系统日志–PLC在线后除M218外,目前的PLC都可以在syslog文件中拷贝日志文件–选择本地的文件夹,点击<<符号C
onfidentialPropertyofSchneiderElectric|SoMachine项目相关练习编程基础•练习1在SoMachine中查找上次PLC的停机原因。•练习2导出系统日志到桌面。Confidential
PropertyofSchneiderElectric|EthernetIP集成ConfidentialPropertyofSchneiderElectric|EtherNet/IP设备集成*Withoptionboard/lwithlimitations支持的PLCs•M241•M251•L
MC078*•LMCPacDrive*ConfidentialPropertyofSchneiderElectric|EtherNet/IP设备集成隐性数据交换配臵•以前必须手动完成的配臵•使用时必须选择合适的组件,并配臵相应的参数(符合FB的需求)•必须配臵通讯模式(e
xclusiveowner…),•自动完成的配臵•当变频器拖放至EtherNet/IP网络中,隐性交换数据配臵自动生成•客户益处•配臵使用设备而不需要深入了解EtherNet/IP•拖放直接生效,节约时间ConfidentialPropertyofSchneiderElectric|Ethe
rNet/IP设备集成隐性数据交换配臵•怎样手动配臵EtherNet/IP•配臵正确的组件•配臵通讯映像•配臵通讯模式•…•现在自动完成的配臵•客户益处•配臵使用设备而不需要深入了解EtherNet/IP•拖放直接生效,节约时间Con
fidentialPropertyofSchneiderElectric|拖放EtherNet/IP设备集成命令通道配臵•以前必须手动完成的配臵•在变频器上手动配臵参数如(CHCF,FR1,FR2…)是的控制通道为Ethernet/IP•自动完成的配臵•当变频器被拖放到Et
hernet网络中,其命令通道直接通过Ehternet总线修改完成•客户益处•可以不深入理解变频器的命令通道•拖放直接配臵完成,节约时间ConfidentialPropertyofSchneiderElectric|Et
herNet/IP设备集成单一接入点•易于管理的IP分配•SoMachine软件中配臵的变频器需要分配一个IP地址•DTM的实例也需要一个IP地址•客户益处•一个地方输入IP地址信息即可•确保PLC和驱动器的设臵之间的一致性ConfidentialPropertyofSchneiderElec
tric|TM241的寄存器ConfidentialPropertyofSchneiderElectric|TM241的存储器结构存储器的构成•控制器存储器由2种类型的物理存储器组成:•闪存中包含文件(应用程序、配臵文件等)。•RAM(RandomAccessMemo
ry)用于执行应用程序•1,从闪存将文件传输到RAM。RAM的内容被覆盖。•2,除INVALID_OS外,使用PC下载、上传•3,所有状态都可以使用SD卡下载、上传、更新固件ConfidentialPropertyof
SchneiderElectric|TM241的RAM存储器结构RAM存储器的构成•TM241的RAM大小为64MB。•RAM由以下2个区域组成:•操作系统存储器•专用应用程序存储器ConfidentialPropertyofSchneiderElectric|TM241的RAM存储器结构用
户区域存储器的构成•TM241的RAM大小为64MB。•RAM由以下2个区域组成:•操作系统存储器•专用应用程序存储器•DoubleWord(%MD)、Word(%MW)、Byte(%MB)和Bit(%MX)的存储器寻址:ConfidentialPropertyofSchn
eiderElectric|DTMinSoMachineConfidentialPropertyofSchneiderElectric|DTM集成ConfidentialPropertyofSchneiderElec
tric|快速进入帮助文件快速进入工具栏控制界面FDR设备的快速替换ConfidentialPropertyofSchneiderElectric|简化机器的调试和维护使用FDR•FDR(Fast设备Replacement)的应用大大简化了维护工作.尤其是需要替换元器件的情况下:•设定元器件的名
称*•连接入网(FDR已配臵存储)•新的元器件就绪,工作!ConfidentialPropertyofSchneiderElectric|!*用户接口要求(Keypad/DTM/WebServer)THANKYOU.
ConfidentialPropertyofSchneiderElectric|