搜档网
当前位置:搜档网 › MC9S12XS128之时间模块TIM输入捕捉

MC9S12XS128之时间模块TIM输入捕捉

MC9S12XS128之时间模块TIM输入捕捉
MC9S12XS128之时间模块TIM输入捕捉

买了本《嵌入式系统——使用HCS12微控制器的设计与应用》这本书,看了觉得帮助不大。因为里面有些东西讲得不够详细,并且这本书不是针对XS128来写的。网上也有一些网友写的资料,那都只是针对某一方面的。我觉得最好的资料还是英文版的说明文档,里面好多东西都讲得很详细,虽然看起来有点费劲,但那里值得的。

接下来就自己的学习经历。

TIM中的功能比较多,有输入捕捉、输出比较,还有脉冲累加器。这里主要记一下输入捕捉和输出比较。输入捕捉这个功能很有用,他不仅可以捕捉外界事件的发生(这个功能和51中的外部中断差不多),还可以捕捉外界事件发生的时间。捕捉外界时间这个功能可以运用到驱动超声波测距中去。

IOC0~IOC7是输入捕捉\输出比较的外部针脚。当IOSx=0时(IOSx=1时为输出比较),则将相应的通道配置为输入捕捉了。当输入捕捉检测到有上升沿或下降沿时,就会把那时寄存器的值锁存到TCx中,这样就可以通过查询TCx来确定事件发生的时间了。如果输入捕捉控制寄存器TIE(CxI=1)中允许输入捕捉中断,则捕捉到事件时,系统会产生一次中断。

接下来依次说明一下相关的寄存器设置:

TSCR1:

TEN是定时器允许位。TEN=1时,允许定时器工作,TEN=0时,禁止定时器工作。其余不常用,设为0即可。

TSCR2:

TOI是定时器溢出中断允许位。这个在输入捕捉中没用到,设为0即可。

TCRE是定时器计数寄存器复位允许位。用在输出比较中,允许输出比较寄存器7的事件来复位定时器计数寄存器。这里设为0即可。

PR2~PR0是定时器分频因子选择位。不同的组合可以设定不同的定时器时钟:

TIOS是输入捕捉和输出比较选择寄存器,在这里设定IOC0~IOC7是用于输入捕捉还是用于输出比较。

里面的8位对应着IOC0~IOC7八个通道,相应位位1,则设为输出比较。相应位设为0,则为输入捕捉。

TCTL3和TCTL4是用来设定输入捕捉极性的寄存器,在这里可以设为上升沿、下降沿、上升沿或下降沿触发输入捕捉。

其中EDGxB和EDGxA一起来设相应通道输入捕捉极性,对应的功能如下:

(0 0)为禁止输入捕捉。

(0 1)为上升沿捕捉

(1 0)为下降沿捕捉

(1 1)为上升沿或下降沿捕捉

TIE是输入捕捉或输出比较中断允许位。

这里的每一位是和TIOS上的位一一对应的。相应置1时,则捕捉到事件时,则系统会产生中断。相应位设为0时,则不能。

TFLG1是输入捕捉或输出比较中断标位寄存器。

当发生输入捕捉或输出比较事件时,相应位置1。向该位写1,可以清空该标志位。

通道寄存器TC0~TC7用于锁存发生捕捉事件时自由运行的计数器的计数值。通过查询TC0~TC7相应的位,可以确定捕捉事件发生的时刻。

与输入捕捉相关的寄存器还有:

ICOVW:输入控制修改寄存器

ICSYS:输入控制系统控制寄存器

DLYCT:延迟计数控制寄存器(可以自动处理窄脉冲干扰)

这些不常,可以不管

接下来按照上面的寄存器设置好相应的功能,程序就出来了:

void ECT0_INIT() //输入捕捉通道0初始化函数

{

TSCR2=0X06; //关闭溢出中断且64分频

TIOS_IOS0=0; //定通道0为输入捕捉,1为输出比较

TCTL4=0X01; //上升沿捕捉0x02为下降沿捕捉

TIE_C0I=1; //通道0中断使能

TSCR1=0X80; //开启总定时器中断

TFLG1_C0F=1; //标志位清零

}

中断程序:

#pragma CODE_SEG __NEAR_SEG NON_BANKED //分配内存空间

void interrupt 8 timer_onput() //输入捕捉通道0的中断向量为8

{

TFLG1_C0F=1; //标志位清零

asm sei; //关总中断

// PORTB=~PORTB;

PORTB&=~(1<<7);

delay_us(1);

PORTB|=(1<<7);

asm cli; //开总中断

}

输出比较看似不能,却磨折了我两天,其中大多都是些小细节问题在纠缠。现在终于想明白其中一些道理。不过有些寄存器还是没有理解,如强制输出比较寄存器CFORC,测试了好久,都未能得到想要的结果,希望路过的高手能指点一下。

接下来继续记一下学习输出比较的点点滴滴吧。

XS128的定时器模块中的输入捕捉和输出比较共用同一组管脚。可以通过设置TIOS寄存器来选择。我觉得输出比较的原理和PWM波的产生原理差不多,都是通过计数器的数值和某一寄存器里的值比较产生输出的高低电平变化。在输出比较中,当计数器的值与某一输出比较通道的TCx(TC0~TC7)的值相等时,该通道上引脚会输出高电平、低电平,或是对引脚上的电平进行翻转。这时标志位CxF会置位,如果开通中断的话(TIE中的CxI=1),系统还会产生一个中断。

输出比较用到的寄存器好多都是和输入捕捉的一样,现在按照输出比较的程序需要再过一遍。

定时器系统控制寄存器TSCR1:设置定时器正常工作

定时器系统控制寄存器TSCR2:设置定时器溢出中断允许,和定时器时钟分频设置

定时器计数寄存器TCNT:这是个16位寄存器,在一般情况下是不可以写的。输入捕捉时,就是这个寄存器的值存入TCx中,输出比较时,也是这个寄存器的值与TCx的

值比较。它的时钟由TSCR2设置的分频决定。程序中这个寄存器一般情况下不用理会。

主定时器国断标志寄存器TFLG2:在这个寄存器中只有最高位TOF有效,是定时器溢出标志位。当TCNT运行产生溢出时,该位就置位了。如果允许定时器溢出中断的话,则系统会产生一个中断。

输入捕捉和输出比较选择寄存器TIOS:设置相应的通道为输入捕捉或是输出比较。

主定时器中断标志寄存器TFLG1:输入捕捉或输出比较的各通道的中断标志位。对相应的通道写1,可以清除标志位。

定时器中断允许寄存器TIE:里面有8位,对应输入捕捉或输出比较的8个通道,设置是否允许相应通道的中断。

通道寄存器TC0~TC7:在输出比较中随时可以写入,它的作用是,当TCx=TCNT 时,相应的x通道就会发生输出比较。此时相应的引脚就可以输出高电平、低电平,或是翻转引脚的电平。

上面的寄存器都是和输入捕捉共用的,在输入捕捉中讲过。接下来就具体说明输出比较特别有的寄存器设置。

TCTL1~TCTL2:

这个两个寄存器中每个OMx和OLx组合在一起,来设置相应通道的引脚电平输出方式:

(0 0):输出比较的通道与引脚逻辑断开,也就是输出比较的输出不会影响相应的引脚的电平。

(0 1):翻转输出比较的引脚的电平。

(1 0):在相应的引脚上输出低电平。

(1 1):在相应的引脚上输出高电平。

CFORC:定时器强制输出比较寄存器

相应位置1时,可以把相应通道的输出比较设为强制输出比较。一般情况下不用。

OC7M:输出比较通道7屏蔽寄存器

OC7D:输出比较通道7数据寄存器

通道7上的连续输出比较会覆盖所有其他通道的引脚上的输出结果。OC7M就是设置其他通道的哪些通道会受通道7控制的。当OC7M的某位置1时,相应通道的输出比较就会受通道7控制,此时受控的通道在其通道上设置的OMx和OLx无效了,而是按照OC7D中对应的OC7Dx 中的值输出到相应的引脚上。总的来说,OC7M是选择受通道7控制的其他通道,而OC7D 是受控的通道在通道7发生输出比较时的输出结果。

TTOV:定时器溢出翻转寄存器

相应通道置1时,计数器溢出时,允许翻转输出比较引脚上的电平。这个寄存器只在输出比较模式下才有效。一般情况下,用不到这个寄存器,程序中不用做设置。

OCPD(OCPD0~OCPD7):当相应位置1时,标志位正常,但是输出比较的结果不能输出到引脚上,也就是输出比较的寄存器与引脚逻辑断开了。当相应位设为0时,标志位正常,引

脚输出也正常。

下面是相应的程序:

#include /* common defines and macros */

#include "derivative.h" /* derivative-specific definitions */

void main(void)

{

DDRB=0XFF;

PORTB=0X7F;

//DisableInterrupts;

TSCR2=0X07; //设置定时器分频

TIOS=0X01;//通道0为输出比较

TCTL2=0X01; //模式为翻转引脚输出电平

TC0=0XAAAA; //设置输出引脚在一个周期内翻转的时间,

//如果这个值保持不变的话,那总的来看,

//引脚输出电平的周期是不变的,周期等于计数器计数一周的时间

//TTOV=0X00; //

//CFORC=0X01; //加上这一句,似乎没什么影响。还没清这个寄存器的具体作用。

TIE=0X01; //相应通道中断允许

TSCR1=0X80; //打开定时器

//PORTB=PTT;

EnableInterrupts;

while(1);

}

#pragma CODE_SEG __NEAR_SEG NON_BANKED interrupt

void interrupt 8 CH0_ISR(void) //要特别注意中断函数的书写格式,我就在这里吃了大亏{

DisableInterrupts;

TFLG1=0x01; //清零标志位

if(TC0==0xAAAA) //改变引脚输出的占空比。输出的周期由计数器计数一

//周的时间决定,要改变,只能改变定时器的时钟分频

TC0=0xffff;

else

TC0=0xAAAA;

PORTB_PB7=~PORTB_PB7; //测试是否进入中断

EnableInterrupts;

}

XS128中的脉冲累加器和DG128的很不一样。相对DG128来说,XS128的脉冲累加器大大简化了,其中只有三个寄存器需要设置:PACTL、PAFLG、PACNT。

16位脉冲累加器PACT与IOC7共用一个引脚。顾名思义,脉冲累加器就是对有效边沿(上升沿或下降沿)进行计数,然后把计数的值保存在寄存器PACNT中。寄存器PACTL

是16位脉冲累加器的核心,几乎所有的设置都是在这个寄存器中。

接下来解剖一下这个核心寄存器PACTL:

PAEN:脉冲累加器允许位,置1,则工作。置0,则禁止。PAEN与TEN无关,定时器TEN禁止时,脉冲累加器仍可以工作。

PAMOD:工作方式选择位。置1,为门控时间累加器方式。置0,为事件计数器方式。

门控时间累加器方式:输入引脚上的有效电平会触发脉冲累加器对64分频后的时钟进行计数。

事件计数器方式:脉冲累加器对引脚上的每个有效边沿计数。引脚上每产生一个有效边沿,脉冲累加器计数器的值就会加1。

PEDGE:边沿跳变控制位。它的功能和脉冲累加器的工作方式有关。如下表:

(0 0):事件计数器方式,下降沿有效

(0 1):事件计数器方式,上升沿有效

(10):门控时间累加器方式,IOC7引脚上的高电平使64分频后的总线时钟输入到脉冲累加器中。

(11):门控时间累加器方式,IOC7引脚上的低电平使64分频后的总线时钟输入到脉冲累加器中。

CLK0~CLK1:时钟选择位。其功能如下表:

(00):使用TIM中分频后的定时器时钟作为计数时钟

(01):选PACLK作为计数时钟

(10):选PACLK/256作为计数时钟

(21):选PACLK/65536作为计数时钟

其中PACLK是对总线时钟进行64分频后的时钟。

PAVOI:脉冲累加器溢出中断允许位。置1,则允许中断产生。置0,则禁止中断。

PAI:脉冲累加器输入中断允许位。置1,则允许中断产生。置0,则禁止中断。

标志寄存器PAFLG:

PAVOF:当脉冲累加器溢出时,此位置1。如果有PAVOI=1时,则产生中断。向该位写1,可以清除标志位。

PAIF:当在IOC7引脚上检测到选定的边沿跳变,此位置1。在事件计数方式下,事件沿跳变会使该位置位。在门控时间累加器方式下,IOC7引脚上门控信号的最后一个下降沿使该位置位。对其写1,可以清除标志位。

计数寄存器PACNT:

此寄存器保存着计数的值。

#include /* common defines and macros */

#include "derivative.h" /* derivative-specific definitions */

void main(void)

{

DDRB=0XFF;

//DDRT=0X00;

PACTL=0X51; //设置脉冲累加器,打开输入中断允许位

EnableInterrupts; //这样,只设置一个寄存器,脉冲累加器就设置完了。

for(;;)

{; }

}

#pragma CODE_SEG __NEAR_SEG NON_BANKED

void interrupt 18 MDC(void) //脉冲累加器的输入中断号为18 {

DisableInterrupts;

PORTB=~PORTB;

PAFLG_PAIF=1; //清除标志位

EnableInterrupts;

}

intouch学习笔记

Intouch学习笔记(之一) 1、关闭右键菜单在intouch.ini文件中加入 oldrightmousebehavior = 1 2、SmartSymbol 不能包含位图,按钮,单元,报警和趋势 3、初始化标记名与创建ActiveX 控件之间会出现定时问题。由于此定时问题,很难保证标记名的初始值等于ActiveX 控件中相关属性的值。 为解决此问题,必须在“启动”事件与InTouch QuickScript 之间建立一种联系。在QuickScript 中,可采用适当的逻辑将标记名值设置为控件的属性。这可以通过使用赋值语句来实现。例如: #ThisControl.Property = MyTag; 事件发生之后,QuickScript 即开始执行,控件的属性与标记名的值将保持同步。因此,属性与标记名之间会出现正常的通知。 4、将“ActiveX 事件”脚本从一个InTouch应用程序移到另一个应用程序时,您必须 使用WindowMaker 文件菜单上的导入命令。 5、用于启用/ 禁用键过滤器的脚本函数是EnableDisableKeys。 6、UNC路径中使用Wonderware 的SuiteLink 协议时,NodeName 长度限制为15 个字符。 7、要在节点上配置多监视器设置 以下内容需要回复才能看到 1. 使用合适的文本编辑器,例“记事本”Windows目录中的WIN.INI 文件。 2. 找到[InTouch] 部分并添加下列参数: [InTouch] 参数描述 MultiScreen=1 打开多屏幕模式 MultiScreenWidth=640 单个屏幕的像素宽度 MultiScreenHeight=480 单个屏幕的像素高度 例如,如果您计算机的分辨率是2560x1024,分开显示在两个并排 的屏幕上,则可输入下列内容: [InTouch] MultiScreen=1 MultiScreenWidth=1280 MultiScreenHeight=1024 8、SuperTag 模板最多可容纳64 个成员标记名和2 个嵌套级别。这表示,SuperTag 父项可包含多达64 个内嵌的子成员,并且这每个子成员又可以包含多达64 个子成员标记名,因此总共可以有4095 个成员标记名。 9、SuperTag每层最多10个字符长度。 10、记录远程引用标记名 缺省条件下,远程引用的标记名会记入“历史记录”文件。要记录远程引用标记名,您必须启用“历史记录”功能,然后在应用程序目录中的INTOUCH.INI 文件中添加下面一行代码: RemoteTags LogEvents=1 如果不想记录I/O 型标记名,请在应用程序目录下的INTOUCH.INI 文件中添加下面一行代码:RemoteTagsNoIOEvents=1 11、如果在alarmbuf.ini 中添加一行"SuppressionLog=1",则"SuppressionLog=0" 会关闭抑制标准改变时写入Logger 的功能。缺省条件下,此值设置为关闭。 12、热备份对配置文件provacc.ini 13、

Intouch非常实用的总结

INTOUCH非常有用的使用总结 intouch授权: 授权文件wwsuite.lic放在C:\Program Files\Common Files\ArchestrA\License。 intouch时间日期设置: intouch系统变量中时间日期是模拟量,不能很好的显示时间和日期,只有两种方式显示 ⑴、单独的时+分+秒显示。 ⑵、调用向导,选择时钟中的组合控件。 DA/IO Server的区别? 两个驱动都可以。详细的以后补充。 其实是IO SERVER好用,IOSERVER的效率比DASERVER好,DASERVER只是为了方便集成到IAS平台,新作的一种IO开发方式。 以太网通讯还是用DAServer,配置很简单,比ioserver好用。 wwclint的作用? 用来测试SMC通讯配置是否正确。需要连接实际的硬件才能进行测试。 用户的配置? 特别-->安全性-->配置用户:依次输入要添加的用户名、口令、访问级别,再点击“添加”按钮就又“申请”了一个用户。 如果“配置用户”选项是灰色的不可用状态,那是因为你还没有以管理员身份登陆,登陆后就可以点击此选项了。将安全类型切换到“Intouch”。 管理员的默认用户名:Administrator 密码:wonderware 。该用户是无法删除的。 打开项目时出现:另一会话正在编辑此应用程序。无法编辑此应用程序。该怎样解决? 文件夹下,删除appedit.lok。 在安装I/O Server的时候,弹出“install of common components could not be started! Please contact wonderwave techsupport !" 想问一下是什么原因,该怎么解决才能完成安装程序? 先安装:F:\软件备份\io servers\FS2K71\IOServer\Common\Win32\setup.exe 如何使用Unity编程软件的仿真器来与Intouch通信?

intouchmsgbox用户确认窗口脚本说明

In touch在做按钮动作和调试脚本时,经常需要用户确认窗口,根据用户点击的是”否”确认”取消”“0等取得返回值,从而根据用户二次确认以获得最终结果,下面给出两种 MessageBox窗口的脚本,给大家参考: 方案A: 采用In touch系统自带的OLE控件自行编写MsgBox。缺点是创建的用户界面对话框可能会被其他窗口覆盖,不易别察觉。 下面是一个例子: 1. 创建用户界面对话框 2. 在脚本中,使用以下命令产生用户界面对话框: 3. 3. dim DlgBody as message; 4. dim DlgTitle as message; 5. dim Style as in teger; 6. dim Result as in teger; 8. 7. OLE_CreateObject(%WS,""); 8. result = %(DlgBody,1,DlgTitle,Style); 11. 9. 本例创建以下用户界面对话框 10. Style标记名确定有哪些图标与按钮出现在对话框上。使用以下值: 复制代码 1. 图标样式值 2. (无图标)无图标0 3. 错误图标16 4. 问号图标32 5. 警告图标48 6. 信息图标64 7. 7. 要使用特定的按钮,请将以下值之一添加到Style值: 8. 值样式 9. 0仅确定按钮 10. 1确定与取消按钮 11. 2放弃、重试及忽略按钮 12. 3是、否及取消按钮 13. 4是与否按钮 14. 5重试与取消按钮 15. 6取消、重试及继续按钮 17. 16. Result标记名包含用户单击的按钮编号。这可用作In Touch脚本中的条件分支。 可能的结果码如下: 17. 结果值含义 18. 1按了确定按钮 19. 2按了取消按钮 20. 3按了放弃按钮

巧用Intouch小函数制作画面

巧用Intouch小函数制作画面 我们用Intouch制作监控画面时,为了安全起见一般需要对技术参数设置保护,对重大事故报警需要播放声音报警和弹出警示窗口,同时为了避免岗位人员随意关闭监控画面和使用工控电脑玩小游戏的各种情况,我们可以利用Intouch 的各种小函数,对工控机电脑做各种限定和保护。下面介绍几个Intouch的小函数: 1.登陆函数PostLogonDialog()和Logoff() PostLogonDialog()和Logoff()是登陆Intouch配置用户的函数,使用时首先需 要配置Intouch用户,Intouch默认2个用户,Administrator 和None,其中Administrator(默认密码wonderware)的访问级别最高9999,None的访问级别为0,我们可以设置一个user用户,访问级别定义为6000,对于需要保护的技术输入参数,设置时效性 如将“删除故障记录”按钮加保护,不能随意删除故障记录,必须有权限的人才能删除故障记录,利用PostLogonDialog()函数登陆刚才配置的user用户名,

才能删除故障记录,同时利用Logoff()注销刚才的登陆,保护技术性参数。 2.PlaySound( SoundName, Flags ) PlaySound( SoundName, Flags )函数是播放音乐的函数,当我们制作画面,需要对重大报警做声音提示的时候可以使用它,通过Windows 声音设备(如已安装)播放波形声音,此声音由.wav 文件名指定,或由win.ini 文件的[sounds] 部分中的项目指定。函数使用格式:PlaySound( "E:\alarm.wav", 9 );其中Flags 根据值的不同播放的报警声音的次数不同 3.Show Window 当重大事故报警时,同时弹出故障连锁画面,及时发现事故原因,函数格式为:Show "故障显示"; 4.EnableDisableKeys(AltKey,EscKey,WinKey) EnableDisableKeys(AltKey,EscKey,WinKey)函数,可以锁定键盘,将键盘失效,当函数为EnableDisableKeys(1,1,1)时锁定键盘,使键盘不能操作,可以编写脚本在程序运行时设置,如:

Intouch非常实用的总结

INTOUCH非常有用的使用汇总报告 intouch授权: 授权文件wwsuite.lic放在C:\Program Files\Common Files\ArchestrA\License。 intouch时间日期设置: intouch系统变量中时间日期是模拟量,不能很好的显示时间和日期,只有两种方式显示 ⑴、单独的时+分+秒显示。 ⑵、调用向导,选择时钟中的组合控件。 DA/IO Server的区别? 两个驱动都可以。详细的以后补充。 其实是IO SERVER好用,IOSERVER的效率比DASERVER好,DASERVER只是为了方便集成到IAS平台,新作的一种IO开发方式。 以太网通讯还是用DAServer,配置很简单,比ioserver好用。 wwclint的作用? 用来测试SMC通讯配置是否正确。需要连接实际的硬件才能进行测试。 用户的配置? 特别-->安全性-->配置用户:依次输入要添加的用户名、口令、访问级别,再点击“添加”按钮就又“申请”了一个用户。 如果“配置用户”选项是灰色的不可用状态,那是因为你还没有以管理员身份登陆,登陆后就可以点击此选项了。将安全类型切换到“Intouch”。 管理员的默认用户名:Administrator 密码:wonderware 。该用户是无法删除的。 打开项目时出现:另一会话正在编辑此应用程序。无法编辑此应用程序。该怎样解决? 文件夹下,删除appedit.lok。 在安装I/O Server的时候,弹出“install of common components could not be started! Please contact wonderwave techsupport !" 想问一下是什么原因,该怎么解决才能完成安装程序? 先安装:F:\软件备份\io servers\FS2K71\IOServer\Common\Win32\setup.exe 如何使用Unity编程软件的仿真器来与Intouch通信? ⑴首先保证Unity编程软件在仿真状态(PLC→仿真模式。) ⑵将程序现在到仿真器,仿真器就会自动启动起来了。

Intouch MsgBox用户确认窗口 脚本说明

Intouch在做按钮动作和调试脚本时,经常需要用户确认窗口,根据用户点击的“是”“否”“确认”“取消”“OK”等取得返回值,从而根据用户二次确认以获得最终结果,下面给出两种MessageBox窗口的脚本,给大家参考: 方案A: 采用Intouch系统自带的OLE控件自行编写MsgBox。缺点是创建的用户界面对话框可能会被其他窗口覆盖,不易别察觉。 下面是一个例子: 1.创建用户界面对话框 2.在脚本中,使用以下命令产生用户界面对话框: 3. 4.dim DlgBody as message; 5.dim DlgTitle as message; 6.dim Style as integer; 7.dim Result as integer; 8. 9.OLE_CreateObject(%WS,"Wscript.Shell"); 10.result = %WS.Popup(DlgBody,1,DlgTitle,Style); 11. 12.本例创建以下用户界面对话框 13.Style 标记名确定有哪些图标与按钮出现在对话框上。使用以下值: 复制代码 1.图标样式值 2.(无图标)无图标 0 3.错误图标 16 4.问号图标 32 5.警告图标 48 6.信息图标 64 7. 8.要使用特定的按钮,请将以下值之一添加到 Style 值: 9.值样式 10.0 仅确定按钮 11.1 确定与取消按钮 12.2 放弃、重试及忽略按钮 13.3 是、否及取消按钮 14.4 是与否按钮 15.5 重试与取消按钮 16.6 取消、重试及继续按钮 17. 18.Result 标记名包含用户单击的按钮编号。这可用作 InTouch 脚本中的条件分支。 可能的结果码如下: 19.结果值含义 20.1 按了确定按钮 21.2 按了取消按钮 22.3 按了放弃按钮

INTOUCH学习笔记

目录 1.新建数据词典,操作站和工程师站所需要安装的不同之处,创建窗口,打开图库,导入导出窗口 2.画面做了三个动画,并且连接变量组态实例,写脚本 3.程序不能够编译但是能运行的原因,报警控件,并且做一个确认报警的按钮,显示所有报警记录的,追究责任的操作记录,制作报警弹出窗口 4.把报警弄成一个excel表,并且可以查询出来,删除没有使用的变量方法, 找实时曲线和历史曲线怎么找 5.安全级别设置,哪些地方哪些人可以动,哪些不可以动,建立起始页,忘记登录密码的时候操作方法 6.intouch的常用函数,更改密码,注销,退出登录等 7.intouch的报表制作 8.视频截图学习为主 8-(1)intouch软件安装步骤 8-(2)建立四个画面进行页面布局设置,和建立一个main画面大小一样的模板新画面,一个组态好的点,替换里面的标签名直接就变成另外一个变量显示画面方法,打开画面组态 8-(3)图库和控件的位置和各种动画组态讲解,以及全程程序,事件程序,条件程序等脚本语言 8-(4)报警控件配置,确认报警按钮 8-(5)新建变量名,点的批量导入导出,脚本IF语句,条件,变化,事件,快捷键等语句执行例子 8-(6)安装图库里面没有的控件,TEXBOX控件语句例子,新疆工程的开始画面报警历库等的配置,新建Intouch模板 8-(7)历史曲线和实时曲线制作 8-(8)intouch程序打开错误的处理方法和安全的配置,密码修改,画面上做登录界面 8-(9)Intouch与OPCLINK通信等各种OPC通信,用到SMC转modbus协议和别的协议为opc协议,opc软件来读,intouch与excel通信 8-(10)Intouch的ACCESS历史数据库配置和历史数据查询 8-(11)程序备份和还原 1

intouch环境 实现声音 报警方法

Intouch环境中实现声音报警的方法 在系统监控程序中,有些重要的报警需要第一时间提示操作运行人员,所以,我们会将一些重要的报警点通过声音报警的方式单独的分列出来。 实现方法 1、打开intouch编辑界面WindowMaker如图1, 图1 在界面左面“脚本”窗口中,右键点击“条件”弹出就“新建”选项如图2

图2 此时,会弹出“条件脚本”界面,如图3,此时,我们以创建“ATE3_103SY”为例,这是一个“精处理装置解列”的报警点,我们需要它产生报警的时候,上位机能够以声音的方式发出警报, 参数设置如下: 条件:报警点在上位机的标签名,可通过双击空白处进入标记名字典而进行选择 注释:此报警点的中文所表达的含义,注释作用 条件类型:报警点触发声音报警的条件,为真期间需要设置触发间隔时间 空白栏处:触发此报警点的脚本

图3 如果要建立多个报警点的话,则按上述方法进行重复操作即可。附件: PlaySound() 函数 播放波形文件的声音或 Windows 缺省声音。 语法 Playsound (soundname,flag)

参数 soundname 声音或波形文件的名称。字符串值、消息标记名或字符串表达式。如 果给声音定义名称,它必须在 Win.ini 文件中的 [Sounds] 部分进行定义,例如MC=”c:test.wav”  flag 指定如何播放声音。文字整数值、整型标记名或整型表达式,含义如下: 0 - 同步播放声音一次(脚本等到声音播放完毕才继续执行)。 1 - 异步播放声音一次(脚本不必等待声音播放完毕再继续执行)。 9 - 连续播放声音(直到再次调用 PlaySound() 函数为止)。 示例 此脚本播放 c:\welcome.wav 文件的声音一次,并暂停脚本执行,直到声音播放完毕。 PlaySound("c:\welcome.wav",0); 此脚本连续播放声音警告。在 win.ini 文件 [Sounds] 部分,需要将声音名称 Alert 与声音文件关联起来,例如:

InTouch HMI 文档指南

InTouch? HMI 文档指南 Invensys Systems, Inc. 修订版 A 上次修订日期:2007 年 8 月 6 日

版权声明 ? 2007 Invensys Systems,Inc. 版权所有。保留所有权利。 保留所有权利。未经 Invensys Systems, Inc. 事先书面明确同意,不得通过任何手段(电子、机械、影印、录制或其它方式)复制、传输本文档中的任何部分,或是将其存储到检索系统。使用本文档所含信息不需承担任何相关的版权或专利责任。虽然在编制本文档的过程中已采取一切预防措施,但错误或疏漏在所难免,出版商与作者对此概不承担任何责任。对由于使用本文档所含信息而导致的任何损害,亦不承担任何赔偿责任。 本文档中的内容如有变更,恕不另行通知,这些内容亦不代表 Invensys Systems, Inc. 一方的承诺。本文所述软件系在遵守许可协议或保密协议的前提下提供。本软件的使用或复制必须遵守这些协议中的各项条款。 Invensys Systems, Inc. 26561 Rancho Parkway South Lake Forest, CA 92630 U.S.A. (949) 727-3200 https://www.sodocs.net/doc/0d17805912.html, 对产品文档如有任何意见或建议,请发送电子邮件到 productdocs@https://www.sodocs.net/doc/0d17805912.html,。 商标 本文所提及且已知为商标或服务标志的所有专用名词均已采用适当的首字母大写形式。Invensys Systems, Inc. 无法证实此类信息的准确性。在本文档中使用某个专用名词不应视为会影响任何商标或服务标志的有效性。 Alarm Logger、ActiveFactory、ArchestrA、Avantis、DBDump、DBLoad、DT Analyst、FactoryFocus、FactoryOffice、FactorySuite、FactorySuite A2、InBatch、InControl、IndustrialRAD、IndustrialSQL Server、InTouch、MaintenanceSuite、MuniSuite、QI Analyst、SCADAlarm、SCADASuite、SuiteLink、SuiteVoyager、WindowMaker、WindowViewer、Wonderware 以及Wonderware Logger 均为 Invensys plc 及其子公司与附属公司的商标。所有其它品牌可能是其相应所有者的商标。

INTOUCH建立报警组

Intouch报警组的添加 1.在HMI 上先建组,然后用数据库导入。 2.新建变量为内存消息,完成脚本 3. 4.

5. 6.

7. 8.脚本1 almQuery( "ALMOBJ_1", "\intouch!"+almgrp, 1, 999, "ALL", "Hist" ); 9.脚本2 IF almgrp_sel=="OMS公用报警组" THEN almgrp = "COM_A"; ENDIF; IF almgrp_sel=="OMS1系统报警组" THEN almgrp = "OMS1_S"; ENDIF; IF almgrp_sel=="OMS1旁路报警组" THEN almgrp = "OMS1_BP"; ENDIF; IF almgrp_sel=="OMS1报警组" THEN almgrp = "OMS1_A"; ENDIF; IF almgrp_sel=="OMS2系统报警组" THEN almgrp = "OMS2_S"; ENDIF; IF almgrp_sel=="OMS2旁路报警组" THEN almgrp = "OMS2_BP"; ENDIF; IF almgrp_sel=="OMS2报警组" THEN almgrp = "OMS2_A"; ENDIF; IF almgrp_sel=="OMS3系统报警组" THEN almgrp = "OMS3_S"; ENDIF; IF almgrp_sel=="OMS3旁路报警组" THEN

almgrp = "OMS3_BP"; ENDIF; IF almgrp_sel=="OMS3报警组" THEN almgrp = "OMS3_A"; ENDIF; IF almgrp_sel=="ALL报警组" THEN almgrp = "$System"; ENDIF;

InTouch HMI 概念与功能指南

InTouch HMI 概念与功能指南 Intouch,一种工业自动化组态软件。 概述 Intouch 一种工业自动化组态软件,Wonderware公司产品. Wonderware 公司成立于1987 年,是在制造运营系统率先推出Microsoft Windows 平台的人机界面(HMI) 自动化软件的先锋。世界第一家推出组态软件的公司. Wonderware InTouch for FactorySuite为以工厂和操作人员为中心的制造信息系统提供了可视化工具。这些制造信息系统集成了操作人员所必需的各种信息,可以在工厂内部和各工厂之间共享。 InTouch HMI软件用于可视化和控制工业生产过程。它为工程师提供了一种易用的开发环境和广泛的功能,使工程师能够快速地建立、测试和部署强大的连接和传递实时信息的自动化应用。 InTouch软件是一个开放的、可扩展的人机界面,为定制应用程序设计提供了灵活性,同时为工业中的各种自动化设备提供了连接能力。 版本发展 inTouch1.0-7.0 inTouch7.11 inTouch 8—2003.1 inTouch 9 --2004.6 inTouch 9.5--2005.9 inTouch10 —2007.9 inTouch10.1[1]—2009.2 InTouch10.5--2012 InTouch10.6--2013

培训手册 InTouch HMI 与ArchestrA 集成指南.pdf InTouch HMI 可视化指南.pdf InTouch HMI 应用程序管理与扩展.pdf InTouch HMI 报警与事件指南.pdf InTouch HMI 数据管理指南.pdf InTouch HMI 文档指南.pdf InTouch HMI 文档附录.pdf InTouch HMI 概念与功能指南.pdf InTouch HMI 脚本与逻辑指南.pdf InTouch HMI 辅助组件指南.pdf 培训教程 国内目前网络上有的InTouch培训教程有 1.《Wonderware InTouch组态软件培训教程》主讲:钱立湘,共11大讲,43小节 2.《Wonderware InTouch视频》主讲:马恒贵,共23节 3. Intouch官方视频教程,Flash格式, 结构组成 InTouch 包含三个主要程序,它们分别是“InTouch 应用程序管理器”、WindowMakerÔ 以及WindowViewerÔ 。 1,“InTouch 应用程序管理器”用于组织管理创建的应用程序。它也可以用于将WindowViewer 配置成服务、为基于客户端和基于服务器的架构配置“网络应用程序开发”(NAD),以及配置“动态分辨率转换”(DRC)。DBDumpÔ 与DBLoadÔ 数据库实用程序也从“应用程序管理器”启动。

脚本制作弹窗intouch

在工程监控系统实际应用编辑画面、脚本时常常需要用到弹出对话框的情况,比如其它系统中有messagebox()和msgbox()等函数可以弹框。 而在intouch中却没有直接引用的函数(个人认为),在网上能找到用采用Intouch系统自带的OLE控件自行编写MsgBox或messagebox()来解决这个问提。 1.dim DlgBody as message; 2.dim DlgTitle as message; 3.dim Style as integer; 4.dim Result as integer; 5. 6.OLE_CreateObject(%WS,"Wscript.Shell"); 7.result = %WS.Popup(DlgBody,1,DlgTitle,Style); 第一次接触intouch中的接触脚本,不能一下子理解其中的意思,经过多方努力终于学会了点皮毛,现我用实际操作截图来记录学习过程。 1.首先打开intouch, 2.在菜单栏中点击特别脚本然后选中QuickFunctions 3.在弹出的窗口中输入,函数名(参数可以不写)然后把网上找的脚本写到下面的窗口内,

其实只要找到”InTouch(R) HMI 脚本与逻辑指南”在第161页就有详细的描述。 下图内容是手册的样本最终弹出的是 4,如何调用 在动作脚本中点击插入,选择函数QuickFunctions,最后弹出的窗口中选择你需要的函数,然后只要你把反回值写上加上判读就可以运用了,这里有点必须要提到的是,返回值必须是整型,并且数据的死区需要改为0,这样确认与取消的返回值才能有效 具体常熟见附表

Intouch非常实用的总结

Intouch非常实用的总结 INTOUCH非常有用的使用总结 intouch授权: 授权文件wwsuite.lic放在C:\\Program Files\\mon Files\\ArchestrA\\License。 intouch时间日期设置:intouch系统变量中时间日期是模拟量,不能很好的显示时间和日期,只有两种方式显示⑴、单独的时+分+秒显示。 ⑵、调用向导,选择时钟中的组合控件。 DA/IO Server的区别? 两个驱动都可以。详细的以后补充。 其实是IO SERVER好用,IOSERVER的效率比DASERVER好,DASERVER只是为了方便集成到IAS平台,新作的一种IO开发方式。 以太网通讯还是用DAServer,配置很简单,比ioserver好用。 wwclint的作用? 用来测试SMC通讯配置是否正确。需要连接实际的硬件才能进行测试。 用户的配置? 特别-->安全性-->配置用户:依次输入要添加的用户名、口令、访问级别,再点击“添加”按钮就又“申请”了一个用户。

如果“配置用户”选项是灰色的不可用状态,那是因为你还没有以管理员身份登陆,登陆后就可以点击此选项了。将安全类型切换到“Intouch”。 管理员的默认用户名:Administrator 密码:wonderware 。该用户是无法删除的。打开项目时出现:另一会话正在编辑此应用程序。无法编辑此应用程序。该怎样解决?文件夹下,删除appedit.lok。 在安装I/O Server的时候,弹出“install of mon ponents could not be started! Please contact wonderwave techsupport !\ 想问一下是什么原因,该怎么解决才能完成安装程序? 先安装:F:\\软件备份\\io servers\\FS2K71\\IOServer\\mon\\Win32\\setup.exe 如何使用Unity编程软件的仿真器来与Intouch通信? ⑴ 首先保证Unity编程软件在仿真状态(PLC→仿真模式。) ⑵ 将程序现在到仿真器,仿真器就会自动启动起来了。 ⑶接下来配置SMC。如下图: 接下来将驱动启动起来。 启动起来显示绿色对勾。

intouch的若干个经典问题解答

intouch的若干个经典问题解答 的若干个经典问题解答 1 InTouch 9.0是否与老版本的 InTouch 兼容? 是的,InTouch 9.0可以与InTouch 8.x 共同存在。 2 InTouch 9.0是否可以在老版本的基础上安装? 可以,InTouch9.0可以直接在InTouch 8.x上安装。如果要在更老版本的InTouch上安装,您必须先卸载老版本的InTouch。 3 是否可以在 InTouch 9.0 中使用老版本的InTouch应用程序? 可以,系统将要求转换该应用程序,在转换过程结束后您就可以使用它了。 4 InTouch 9.0可以和Suitevoyager安装在同一台机器上么? 可以。 5 哪些 Wonderware 产品/版本与 InTouch 8.0 HMI 兼容? 请参阅公布在Wonderware 支持网站上的产品兼容表 https://www.sodocs.net/doc/0d17805912.html,/support 。 6 是否可以在不支持终端服务的机器上安装 InTouch Terminal Services 版? 不行。 7 是否可以在支持终端服务的机器上安装 InTouch 标准版? 可以,但 InTouch Terminal Services 功能将不起作用。 8 InTouch是否与老版本的FactorySuite产品兼容?例如,Wonderware I/O Server或者IndustrialSQL Server? 是,InTouch 9.0可以和老版本的FactorySuite产品共同使用。 9 新的安装过程是什么样的? 请参见InTouch 9.0自带的readme文件获取完整的安装指导信息。 10 安装期间或安装完成后是否要求重新启动? 如果有软件装载到PC并且安装过程需要来更新,可能会需要重新启动。 11 InTouch 9.0支持什么样的操作系统? 请参见https://www.sodocs.net/doc/0d17805912.html,/support/mmi上的兼容支持表。 12 支持什么样的数据库引擎? InTouch 9.0支持Microsoft SQL Server 2000 和MSDE 2000。请参见 https://www.sodocs.net/doc/0d17805912.html,/support/mmi上的兼容支持表。 13 InTouch Terminal Services 8.0 版如何进行软件授权? 要使用 InTouch 9.0 Terminal Services,您必须另外购买软件许可。

相关主题