دانلود pdf برنامه نویسی PLC به زبان STL کمیاب و عالی
آموزش جامع و عملیاتی برنامه نویسی PLC به زبان STL برای مهندسان و متخصصان اتوماسیون صنعتی، مبحثی حیاتی به شمار میرود که در این محتوای آموزشی به صورت مفصل مورد بررسی قرار گرفته است. در ابتدا، با مجموعه دستورات منطق بیتی آشنا میشویم که شامل عملیات پایهای مانند AND، OR، AN (AND NOT) و ON (OR NOT) است.
در ادامه مسیر یادگیری برنامه نویسی PLC به زبان STL، به دستورات مقایسهای میرسیم که نقش اساسی در کنترل منطق شرطی ایفا میکنند. قبل از ورود به این بخش، مقدمهای بر اکومولاتورهای S7 و ساختار داخلی آنها ارائه میشود تا درک بهتری از نحوه کارکرد این دستورات حاصل گردد.
دستورات مقایسهای امکان ارزیابی و مقایسه انواع دادهها، از جمله دادههای ۱۶ بیتی از نوع صحیح، دادههای ۳۲ بیتی از نوع صحیح مضاعف، و دادههای ۳۲ بیتی از نوع اعشاری شناور را فراهم میآورند. در این بخش، با ارائه مثالهایی عینی، نحوه مقایسه محتویات رجیسترهای مختلف و یا مقایسه آنها با مقادیر ثابت به طور دقیق نشان داده میشود.
فصل بعدی به یکی از بخشهای مهم در برنامه نویسی PLC به زبان STL، یعنی دستورات تبدیل نوع دادهها اختصاص دارد. این دستورات برای اطمینان از سازگاری دادهها در محاسبات و عملیات مختلف ضروری هستند. ابتدا مقدمهای بر این دستورات و عناوین تبدیل ارائه میشود.

سپس، دستورالعملهای تبدیل اعداد BCD (کدگذاری اعشاری باینری) و اعداد صحیح مورد بررسی قرار میگیرند؛ از جمله BTI (تبدیل BCD به صحیح ۱۶ بیتی) و ITB (تبدیل صحیح ۱۶ بیتی به BCD) که برای هر دو حالت مثبت و منفی با ذکر خطاهای نرمافزاری احتمالی تشریح میشوند.
سپس در همین راستا، دستوراتی چون BTD (تبدیل BCD به صحیح ۳۲ بیتی) و DTB (تبدیل صحیح مضاعف ۳۲ بیتی به BCD) برای کار با مقادیر بزرگتر، همراه با جزئیات مربوط به خطاهای OVERFLOW و نرمافزاری بیان میگردند. علاوه بر این، تبدیلاتی نظیر ITD (تبدیل صحیح ۱۶ بیتی به صحیح مضاعف ۳۲ بیتی) و DTR (تبدیل صحیح مضاعف ۳۲ بیتی به اعشاری شناور) که در پردازش سیگنالهای آنالوگ و محاسبات پیچیدهتر کاربرد دارند، آموزش داده میشوند.
نوع فایل: پی دی اف – 455 صفحه
فهرست مطالب:
- Here’s the table of contents based on the provided PDF, following all your instructions:
- آموزش برنامهنویسی PLC به زبان STL
- فصل اول: مجموعه دستورات Bit Logic
- دستورات AND
- دستورات Assign
- مثالهای دستورات AND و Assign
- دستورات OR
- مثال دستورات OR
- دستورات AN (AND NOT)
- مثال دستور AN
- دستورات ON (OR NOT)
- مثال دستور ON
- دستورات A (AND with nesting open)
- دستورات O (OR with nesting open)
- دستورات AN (AND NOT with nesting open)
- دستورات ON (OR NOT with nesting open)
- یک مثال برنامه نویسی STL
- دستورات X (Exclusive OR)
- دستورات X (Exclusive OR with nesting open)
- دستورات XN (Exclusive OR NOT)
- دستورات XN (Exclusive OR NOT with nesting open)
- دستورات S (Set)
- دستورات R (Reset)
- دستورالعملهای تغییر مقدار RLO
- مثال دستورات SET و CLR
- مثال دستورات SET، NOT و CLR
- دستورات FN (Edge Negative)
- نمودار زمانی FN
- دستورات FP (Edge Positive)
- نمودار زمانی FP
- فصل دوم: مجموعه دستورات Comparison Instruction
- مقدمه ای بر اکومولاتورهای S7
- ساختار داخلی یک اکومولاتور در S7
- دستورات مقایسهای
- انواع داده قابل مقایسه
- دادههای 16 بیتی از نوع صحیح (Integer)
- دادههای 32 بیتی از نوع صحیح (Double Integer)
- دادههای 32 بیتی از نوع مميز شناور (Real)
- مثال 1: مقایسه محتویات MW0 و MW1
- توضیح مثال 1 مقایسه
- مثال 2: مقایسه محتویات MW0 با یک عدد ثابت
- توضیح مثال 2 مقایسه
- فصل سوم: مجموعه دستورات Conversion Instruction (تبدیل نوع دادهها)
- مقدمه ای بر دستورات تبدیل نوع داده ها
- عناوین نوع تبدیل
- دستورالعملهای تبدیل اعداد BCD و صحیح
- دستور BTI (BCD to Integer 16 bit)
- مثال 1 تبدیل BCD به Integer (مثبت)
- مثال 2 تبدیل BCD به Integer (منفی)
- خطای نرم افزاری در BTI
- دستور ITB (Integer 16 bit to BCD)
- مثال 1 تبدیل Integer به BCD (مثبت)
- مثال 2 تبدیل Integer به BCD (منفی)
- خطای OVERFLOW در ITB
- دستور BTD (BCD to Integer 32 bit)
- مثال 1 تبدیل BCD به Integer (مثبت)
- مثال 2 تبدیل BCD به Integer (منفی)
- خطای نرم افزاری در BTD
- دستور DTB (Double Integer 32 bit to BCD)
- مثال 1 تبدیل Double Integer به BCD (مثبت)
- مثال 2 تبدیل Double Integer به BCD (منفی)
- خطای OVERFLOW در DTB
- دستور ITD (Integer 16 bit to Double Integer 32 bit)
- مثال 1 تبدیل Integer به Double Integer (مثبت)
- مثال 2 تبدیل Integer به Double Integer (منفی)
- دستور DTR (Double Integer 32 bit to Floating-point)
- مثال 1 تبدیل Double Integer به Floating-point (مثبت)
- دستورالعملهای متمم 1 و 2 و تغییر علامت اعداد مميز شناور
- دستور INVI (Ones Complement Integer 16 bit)
- مثال 1 متمم 1 Integer
- دستور INVD (Ones Complement Double Integer 32 bit)
- مثال متمم 1 Double Integer
- دستور NEGI (Twos Complement Integer 16 bit)
- مثال متمم 2 Integer
- دستور NEGD (Twos Complement Double Integer 32 bit)
- مثال متمم 2 Double Integer
- دستور NEGR (Twos Complement Double Integer 32 bit) (تغییر علامت داده)
- مثال تغییر علامت اعشاری
- دستورالعملهای تغییر ترتیب بیتها
- دستور CAW (Change Byte Sequence in ACCU1-L 16 bit)
- مثال CAW
- دستور CAD (Change Byte Sequence in ACCU1 32 bit)
- مثال CAD
- دستورالعملهای تغییر روی اعداد اعشاری 32 بیتی
- دستور RND (Round)
- مثال Round (مثبت و منفی)
- مثال Round (اعشاری مثبت)
- مثال Round (اعشاری منفی)
- مثال Round (اعشاری نزدیک به 0)
- دستور TRUNC (Truncate)
- مثال Truncate (مثبت و منفی)
- مثال Truncate (اعشاری مثبت)
- مثال Truncate (اعشاری منفی)
- دستور RND+ (Round to upper Double integer)
- مثال RND+ (مثبت و منفی)
- مثال RND+ (اعشاری مثبت)
- مثال RND+ (اعشاری منفی)
- دستور RND- (Round to Lower Double integer)
- مثال RND- (مثبت و منفی)
- مثال RND- (اعشاری مثبت)
- مثال RND- (اعشاری منفی)
- فصل چهارم: Counter Instruction
- مقدمه ای بر شمارندهها
- مقدار شمارش BCD یا Binary
- فرمت BCD
- فرمت Binary
- دستورات کانتر
- دستور FR (Enable Counter Free)
- مثال FR
- دستور L (Load current Counter Value into ACCU1)
- مثال L
- دستور LC (Load current Counter Value into ACCU1 as BCD)
- مثال LC
- نمونه عملی LC
- دستور R (Reset Counter)
- مثال R
- دستور S (Set counter Preset Value)
- مثال S
- دستور CU (Counter Up)
- مثال CU
- دستور CD (Counter Down)
- مثال 1 CD
- مثال 2 CD
- فصل پنجم: Data Block Instruction
- مقدمه ای بر بلوکهای داده
- دستورات مربوط به دیتا بلوکها
- دستور OPN (Open a Data Block)
- مثال OPN
- دستور CDB (Exchange Shared DB and Instance DB)
- مثال CDB
- دستور L DBLG (Load Length of Shared DB in ACCU1)
- مثال L DBLG
- دستور L DBNO (Load Number of Shared DB in ACCU1)
- مثال L DBNO
- دستور L DILG (Load Length of Instance DB in ACCU1)
- مثال L DILG
- دستور L DINO (Load Number of Instance DB in ACCU1)
- مثال L DINO
- فصل ششم: Logic Control Instruction (کنترل روند اجرای برنامه)
- مقدمه ای بر دستورات پرش
- دسته بندی دستورات پرش
- دستورات پرش بدون قید و شرط
- دستور JU (Jump Unconditional)
- نکات مهم در Label گذاری
- مثال JU
- دستور JL (Jump to Labels)
- توضیحات تکمیلی JL
- مثال JL
- دستورات پرش مشروط به وضعیت RLO
- دستور JC (Jump if RLO=1)
- مثال JC
- دستور JCN (Jump if RLO=0)
- مثال JCN
- دستور JCB (Jump if RLO=1 With BR)
- مثال JCB
- دستور JNB (Jump if RLO=0 With BR)
- مثال JNB
- دستورات پرش مشروط به وضعیت یک بیت از Status Word
- دستور JBI (Jump if BR=1)
- مثال JBI
- دستور JNBI (Jump if BR=0)
- مثال JNBI
- دستور JO (Jump if OV=1)
- نکته OV
- مثال JO
- دستور JOS (Jump if OS=1)
- نکته OS
- تفاوت بین OV و OS
- مثال JOS
- دستورات پرش مشروط به نتیجه محاسبات
- دستور JZ (Jump if Zero)
- نکته JZ
- مثال JZ
- دستور JN (Jump if Not Zero)
- نکته JN
- مثال JN
- دستور JP (Jump if Plus)
- نکته JP
- مثال JP
- دستور JM (Jump if Minus)
- نکته JM
- مثال JM
- دستور JPZ (Jump if Plus or Zero)
- نکته JPZ
- مثال JPZ
- دستور JMZ (Jump if Minus or Zero)
- نکته JMZ
- مثال JMZ
- دستور JUO (Jump if Unordered)
- موارد اتفاق JUO
- مثال JUO
- دستورات حلقههای تکرار (Loop)
- دستور LOOP
- مثال 1 LOOP
- مثال 2 LOOP
- فصل هفتم: Integer Math Instruction (اعمال ریاضی روی اعداد صحیح)
- مقدمه ای بر اعمال ریاضی
- اعمال ریاضی مجاز روی دادههای 16 بیتی و 32 بیتی
- نحوه تاثیرپذیری بیتهای Status Word (نتیجه مجاز)
- نحوه تاثیرپذیری بیتهای Status Word (نتیجه غیرمجاز)
- تکمله جدول Status Word
- دستور I+ (Add ACCU1 and ACCU2 as Integer)
- نحوه تاثیرپذیری بیتهای Status Word (Add Integer)
- مثال I+
- دستور I- (Subtract ACCU1 from ACCU2 as Integer)
- نحوه تاثیرپذیری بیتهای Status Word (Subtract Integer)
- مثال I-
- دستور I* (Multiply ACCU1 and ACCU2 as Integer)
- نحوه تاثیرپذیری بیتهای Status Word (Multiply Integer)
- مثال I*
- دستور I/ (Divide ACCU2 by ACCU1 as Integer)
- نحوه تاثیرپذیری بیتهای Status Word (Divide Integer)
- مثال I/
- دستور + (Add Integer constant)
- رنج مجاز اعداد
- مثال +
- دستور D+ (Add ACCU1 and ACCU2 as Double Integer)
- نحوه تاثیرپذیری بیتهای Status Word (Add Double Integer)
- مثال D+
- دستور D- (Subtract ACCU1 from ACCU2 as Double Integer)
- نحوه تاثیرپذیری بیتهای Status Word (Subtract Double Integer)
- مثال D-
- دستور D* (Multiply ACCU1 and ACCU2 as Double Integer)
- نحوه تاثیرپذیری بیتهای Status Word (Multiply Double Integer)
- مثال D*
- دستور D/ (Divide ACCU2 by ACCU1 as Double Integer)
- نحوه تاثیرپذیری بیتهای Status Word (Divide Double Integer)
- مثال D/
- دستور MOD (Division Remainder Double Integer)
- نحوه تاثیرپذیری بیتهای Status Word (MOD)
- مثال MOD
- فصل هشتم: Floating-point Math Instruction (اعمال ریاضی روی اعداد با مميز شناور)
- مقدمه ای بر اعمال ریاضی Floating-point
- اعمال ریاضی مجاز روی دادههای Floating-point
- ادامه اعمال ریاضی Floating-point
- نحوه تاثیرپذیری بیتهای Status Word (نتیجه مجاز Floating-point)
- نحوه تاثیرپذیری بیتهای Status Word (نتیجه غیرمجاز Floating-point)
- دستور R+ (Add ACCU1 and ACCU2 as Floating-point)
- نحوه تاثیرپذیری بیتهای Status Word (Add Floating-point)
- مثال R+
- دستور R- (Subtract ACCU1 from ACCU2 as Floating-point)
- نحوه تاثیرپذیری بیتهای Status Word (Subtract Floating-point)
- مثال R-
- دستور R* (Multiply ACCU1 and ACCU2 as Floating-point)
- نحوه تاثیرپذیری بیتهای Status Word (Multiply Floating-point)
- مثال R*
- دستور R/ (Divide ACCU2 by ACCU1 as Floating-point)
- نحوه تاثیرپذیری بیتهای Status Word (Divide Floating-point)
- مثال R/
- دستور ABS (Absolute Value of a Floating-point number)
- مثال ABS
- دستور SQR (Generate the Square of a Floating-point Number)
- نحوه تاثیرپذیری بیتهای Status Word (SQR Floating-point)
- مثال SQR
- دستور SQRT (Generate the Square Root of a Floating-point Number)
- نحوه تاثیرپذیری بیتهای Status Word (SQRT Floating-point)
- مثال SQRT
- دستور EXP (Generate the Exponential Value of a Floating-point Number)
- نحوه تاثیرپذیری بیتهای Status Word (EXP Floating-point)
- مثال EXP
- دستور LN (Generate the Natural Logarithm of a Floating-point Number)
- نحوه تاثیرپذیری بیتهای Status Word (LN Floating-point)
- مثال LN
- دستور SIN (Generate the Sine of Angles as Floating-point Numbers)
- نحوه تاثیرپذیری بیتهای Status Word (SIN Floating-point)
- مثال SIN
- دستور COS (Generate the Cosine of Angles as Floating-point Numbers)
- نحوه تاثیرپذیری بیتهای Status Word (COS Floating-point)
- مثال COS
- دستور TAN (Generate the Tangent of Angles as
قیمت: 250/500 تومان
در ادامه مبحث تبدیل، به دستورالعملهای متممگیری (Ones Complement و Twos Complement) برای اعداد صحیح ۱۶ و ۳۲ بیتی (INVI, INVD, NEGI, NEGD) و همچنین تغییر علامت اعداد اعشاری شناور (NEGR) پرداخته میشود.
این عملیات برای انجام محاسبات با اعداد منفی و منطق معکوسسازی بسیار مهم هستند. همچنین، دستورالعملهای تغییر ترتیب بیتها مانند CAW (تغییر ترتیب بایت در ACCU1-L ۱۶ بیتی) و CAD (تغییر ترتیب بایت در ACCU1 ۳۲ بیتی) به منظور مدیریت دادهها در سطوح پایینتر معرفی میگردند.
در نهایت، دستورالعملهای تغییر روی اعداد اعشاری شناور ۳۲ بیتی، شامل RND (گرد کردن), TRUNC (قطع کردن), RND+ (گرد کردن به سمت بالا) و RND- (گرد کردن به سمت پایین) که برای کنترل دقت و نمایش اعداد اعشاری کاربرد دارند، به تفصیل همراه با مثالهای متنوع توضیح داده میشوند.
مطالب مرتبط
- دانلود pdf برنامه ریزی نگهداری و تعمیرات در 183 صفحه
- دانلود pdf برنامه ریزی عدد صحیح در 64 صفحه
- دانلود pdf روش های حل برنامه ریزی عدد صحیح در 67 صفحه
فصل بعدی بر دستورات شمارندهها تمرکز دارد که امکان شمارش رویدادها را در برنامه نویسی PLC به زبان STL فراهم میآورد. این بخش با مقدمهای بر شمارندهها و توضیح تفاوت میان مقدار شمارش BCD و Binary آغاز میشود و فرمتهای مختلف آنها را شرح میدهد.
سپس، لیست کاملی از دستورات شمارنده از جمله FR (فعالسازی شمارنده آزاد)، L (بارگذاری مقدار جاری شمارنده در ACCU1)، LC (بارگذاری مقدار جاری شمارنده در ACCU1 به فرمت BCD)، R (بازنشانی شمارنده)، S (تنظیم مقدار پیشفرض شمارنده)، CU (شمارش صعودی) و CD (شمارش نزولی) ارائه میشود که هر کدام با مثالهای عملی برای درک بهتر همراه هستند.
مجموعه دستورات بلوک داده، بخش حیاتی دیگری در سازماندهی و مدیریت اطلاعات در برنامه نویسی PLC به زبان STL است. این فصل با مقدمهای بر بلوکهای داده و اهمیت آنها شروع میشود. سپس، دستورات کلیدی مربوط به دیتا بلوکها مورد بررسی قرار میگیرند؛ شامل OPN (باز کردن بلوک داده)، CDB (تعویض بلوک داده مشترک و بلوک داده نمونه)، و همچنین دستورات بارگذاری اطلاعات مربوط به طول و شماره بلوکهای داده مشترک و نمونه در اکومولاتور ۱ مانند L DBLG، L DBNO، L DILG و L DINO. این دستورات به برنامهنویس امکان میدهند تا به صورت پویا به بلوکهای داده دسترسی یافته و آنها را مدیریت کند.
کنترل روند اجرای برنامه از طریق دستورات کنترل منطقی، موضوع فصل بعدی است که به برنامهنویس امکان میدهد فلوچارت اجرای برنامه را مدیریت کند. این بخش با مقدمهای بر دستورات پرش و دستهبندی آنها آغاز میشود. دستورات پرش بدون قید و شرط (JU, JL)، پرش مشروط به وضعیت RLO (JC, JCN, JCB, JNB)، و پرش مشروط به وضعیت یک بیت از کلمه وضعیت (JBI, JNBI, JO, JOS) به تفصیل با نکات و مثالهای مربوطه شرح داده میشوند. همچنین، پرشهای مشروط به نتیجه محاسبات (JZ, JN, JP, JM, JPZ, JMZ, JUO) و دستورات حلقههای تکرار (LOOP) برای ایجاد ساختارهای تکراری در کد، مورد بحث قرار میگیرند.
در ادامه مبحث برنامه نویسی PLC به زبان STL، به دستورات ریاضی روی اعداد صحیح میپردازیم که برای انجام محاسبات عددی در PLC ضروری هستند. این فصل با مقدمهای بر اعمال ریاضی و تشریح اعمال مجاز روی دادههای ۱۶ بیتی و ۳۲ بیتی آغاز میشود.
نحوه تاثیرپذیری بیتهای کلمه وضعیت (Status Word) بر اثر نتایج مجاز و غیرمجاز محاسبات به دقت توضیح داده میشود. سپس، دستورات اصلی ریاضی مانند I+ (جمع صحیح)، I- (تفریق صحیح)، I (ضرب صحیح)، I/ (تقسیم صحیح) و نیز D+، D-، D، D/ برای اعداد صحیح مضاعف، به همراه دستور MOD (باقیمانده تقسیم) و دستور جمع با ثابت عدد صحیح (+) معرفی و با مثالهای گویا تشریح میگردند.
مجموعه دستورات ریاضی روی اعداد اعشاری شناور، گام بعدی در توسعه تواناییهای محاسباتی در برنامه نویسی PLC به زبان STL است. این بخش نیز با مقدمهای بر اعمال ریاضی اعشاری شناور و تاثیر آنها بر بیتهای کلمه وضعیت شروع میشود.
دستورات پایه جمع (R+), تفریق (R-), ضرب (R) و تقسیم (R/) برای این نوع دادهها، سپس دستوراتی برای محاسبات پیشرفتهتر مانند ABS (قدر مطلق), SQR (مربع), SQRT (ریشه دوم), EXP (نمایی) و LN (لگاریتم طبیعی) به همراه توابع مثلثاتی SIN, COS, TAN, ASIN, ACOS, ATAN مورد بحث قرار میگیرند که همگی برای کاربردهای پیچیده مهندسی ضروری هستند.
فصل نهم به مجموعه دستورالعملهای بارگذاری و انتقال دادهها میپردازد که برای جابهجایی مقادیر بین رجیسترها و حافظهها در برنامه نویسی PLC به زبان STL حیاتی است. در این بخش، پس از معرفی رجیسترهای آدرس در CPU های زیمنس، دستورات بارگذاری مانند L (Load) و L STW (بارگذاری کلمه وضعیت) تشریح میشوند.
سپس، دستورات LAR1 و LAR2 برای بارگذاری ثباتهای آدرس از اکومولاتور یا با مقادیر ثابت، و همچنین از یک ثبات آدرس به دیگری، مورد بررسی قرار میگیرند. در ادامه، دستورات انتقال مانند T (Transfer) و T STW (انتقال به کلمه وضعیت) و نیز دستورات مرتبط با ثباتهای آدرس مانند CAR (تبادل ثبات آدرس)، TAR1 و TAR2 (انتقال ثبات آدرس به اکومولاتور یا مقصد) با جزئیات کامل و مثالهای کاربردی ارائه میگردند.
کنترل برنامه از طریق دستورالعملهای تخصصیتر مانند BE (پایان بلوک), BEC (پایان بلوک شرطی), BEU (پایان بلوک بدون قید و شرط) و همچنین دستورات فراخوانی بلوکها (CALL, CC, UC) در فصل دهم از آموزش برنامه نویسی PLC به زبان STL مطرح میشود.
این دستورات برای ساختاربندی بهتر برنامه، استفاده مجدد از کد و ایجاد ماژولار بودن ضروری هستند. علاوه بر این، دستور MCR (رله کنترل اصلی) و مکانیزم کاری آن به همراه اخطارهای مهم در استفاده از آن، به عنوان ابزاری قدرتمند برای کنترل دستهای از عملیات منطقی، به دقت توضیح داده میشود.
در فصول پایانی، به دستورالعملهای شیفت و چرخش بیتها (Shift and Rotate Instruction) میپردازیم که برای دستکاری دادهها در سطح بیت کاربرد دارند؛ شامل SSI, SSD (شیفت علامت), SLW, SRW (شیفت کلمه), SLD, SRD (شیفت کلمه مضاعف), RLD, RRD (چرخش کلمه مضاعف) و RLDA, RRDA (چرخش اکومولاتور). در ادامه، دستورات تایمرها (Timer Instruction) از جمله FR, L, LC, R و انواع خاص تایمرها نظیر SP (پالس), SE (پالس گسترده), SD (تاخیر در وصل), SS (تاخیر در وصل پایدار) و SF (تاخیر در قطع) معرفی میشوند.
سپس، دستورات منطق کلمهای (Word Logic Instruction) مانند AW, OW, XOW (برای کلمه ۱۶ بیتی) و AD, OD, XOD (برای کلمه مضاعف ۳۲ بیتی) که عملیات منطقی را روی مجموعهای از بیتها انجام میدهند، مورد بحث قرار میگیرند. نهایتاً، دستورات اکومولاتوری (Accumulator Instruction) شامل TAK, POP, PUSH, ENT, LEAVE, INC, DEC و AR1+, AR2+ برای مدیریت دادهها در اکومولاتورها و رجیسترهای آدرس، به همراه دستورات تهی (BLD, NOP0, NOP1) و لیست کامل دستورات STL در ضمیمه، تمامی جنبههای مورد نیاز برای تسلط بر این زبان برنامه نویسی را پوشش میدهد.