Call/text us anytime to book a tour - (323) 639-7228!
The Intersection
of Gateway and
Getaway.
Tia portal data blocks
Tia portal data blocks. dbx0. In S7-1200 for having addresses in DB you have to choose Block Access as Standard, as shown in Image "02_STEP 7 - TIA Portal v11 - 01" Data Blocks are getting more and more important and easy to use but on the other side complex, powerful and frightening! But actually they are quite simpl Para crear un DB en TIA Portal primero debes irte a la pestaña «Agregar nuevo bloque«, en la carpeta «Bloques de programa«. Select the "Delete" command from the shortcut menu. Feb 4, 2021 · A DB is a Data-Block a defined memory area. 1 Motivation In order to be able to facilitate the use of technological functions that can be used Preface Function Block Diagram (FBD) for S7-300 and S7-400 Programming 6 Reference Manual, 05/2010, A5E02790131-01 Technical Support You can reach the Technical Support for all Industry Automation and Drive Technology products SCE_IT_032-600 Global Data Blocks_S7-1500_R1703. The configuration of the function blocks is performed in the TIA Portal as of V12 SP1. m BYTE 20 After calling SFC20, the 3 parameters appear automaticly. Jan 19, 2016 · The blocks were created in LAD, FBD, STL, or SCL. In a previous tutorial, we investigated the process of designing a new project in Siemens’s TIA Portal, then connecting and downloading a simple program to the S7-1200 PLC platform, illustrating a few simple coil and contact commands. We have written the data 1123, 7893, 12. Last edited by: The Helping Hand at: 4/17/2016 5:57:04 PM New subject after splitting May 12, 2019 · Subscribe to this channel for more Videos and Tutorials 😊See also : https://youtu. Global library Sep 18, 2019 · Creating the instance data block template is very simple since each data block can be in a separate XML file. WIth S7 it's a simple copy and paste. Using these instructions, process data can be saved in CSV format (comma-separated value) in the CPU's flash memory (only with S7-1200) or on an inserted Memory Card. So i fegure out somthing else. 987 on TIA Portal Modbus Data Block. DBXy. Rating: (63) Hello, address offset is defined automatically by optimized DBs, if you need to be able to control the offset of your variables you will need to remove the "Optimized" attibute of the DB, after doing this the address offset will be displayed in its respective column in the DB. Rating: (0) Using TIA v14sp1 myself. TSEND_C instruction internally to send data through an ISO-on-TCP connection. Oct 5, 2022 · Learn how to use Arrays with Siemens TIA Portal >>> Arrays are an important data type in PLC programming. docx 3 Hardwares e softwares necessários 1 Engineering Station: Pré-requisitos são hardware e sistema operacional (outras informações, vide Readme nos DVDs TIA Portal Installations) 2 Software SIMATIC STEP 7 Professional no TIA Portal – a partir de V13 #datablockintiaportal #datablocks#tiaportalinhindi#globaldb#datablockinsiemens #tiaportaltutorialinhindi #tiaportalprogramming #tiaportalinhindi #siemensplcp Jul 31, 2018 · Joined: 12/7/2015. So, no automatic re-initialization will be performed without programmer’s acknowledge. This has shown how to read data on a Modbus server into a Modbus client in TIA Portal. to bool), and then back to the intended data type. Start by launching TIA Portal. Now compile / rebuild all. Learn-/Training Document Jan 13, 2020 · Joined: 10/25/2019. In this chapter, you will become acquainted with the use of global data blocks for the SIMATIC S7-1200 with the TIA Portal programming tool. Data Block (veri bloğu): DB belleği, Program değişkenleriniz ya da bir işlemin ara durumunu, diğer kontrol bilgileri parametreleri, zamanlayıcılar ve sayıcıl Oct 9, 2019 · S7-1200 and S7-1500 blocks are preset to be "optimized". Save that project. From now on, when I need to add a new Pump/Motor to my system, it will be done with one network (Although, it is likely I would add a second network-as shown below- for motor interlocks as interlocks can be complex). Posts: 3. Rating: (0) One thing that I did that seemed to work (although I don't know why) is by changing the type to a different type (i. This assumes that each module has the same block interface. You can define the structure of global data blocks anyway you please. May 8, 2015 · Is there a maximum cap for the number of data blocks that I can create in S7-1500 family? Is that restricted by licensing? I am using TIA Portal v13. This can be useful if you are managing buffered data, or data from a network protocol such as Modbus, where all data is sent in packets of Words 📝NoteFor both the BLKMOV and AT constructor, block optimization Dec 13, 2018 · Joined: 7/7/2010. These data blocks can be customized by changing the actual values for the appropriate task. DB3 SendData The data to be sent to the communication partner with the "PUT" instruction (SendData) is stored in the data block DB3 "SendData". Now that we have defined all the machine’s specifications, we can start writing our PLC program. P# states an any-pointer DBxx. I am using TIA V15. Symptoms: "Rename" isn't available in the drop-down menus for the blocks and the name field is greyed out if entering options. The function blocks for the cyclic and acyclic communication are used for the simple connection of various SINAMICS S/G/V converter systems. Keep in mind though, if the destination point for Nov 16, 2019 · Please Subscribe to Easy PLC Training Sessions for more Videos and TrainingLink for Part # 1 PLC Tutorial for beginners Part #1 Hardware preview https://www. I can't figure out how to export/import function blocks with TIA Portal. 0 and for word db1. DB3 SendData The sent data is stored in the DB3 data block. Open that FC. This sample program shows how to call the "PUT" and "GET" instructions in the 1 SIMATIC’s Technology Objects 1. Currently each station is already connect Sep 22, 2020 · Joined: 7/9/2015. DB4 RecvData The data received from the communication The Function Block Diagram (FBD) language, part of Siemens' TIA Portal ecosystem, facilitates the creation of sophisticated control algorithms through graphical programming. The downside is you can't use absolute address for direct access, only symbolic. i data as Modbus master from the two slaves (CM PtP of the ET 200SP). DB2 GeneralData Includes the variables for the parameters of the FB1 "PutGet". Hướng dẫn hiển thị, truy cấp địa chỉ tuyệt đối của Data Block - TIA Portal 1. I save the blocks that i want to transfer to a library folder and from thear iinsert them to the new project. In this chapter, you will get to know the basic elements of a control program – the organization blocks (OBs), functions (FCs), function blocks (FBs) and data blocks (DBs). Posts: 15135. Then, on the first screen, click on “Create a new project”, give it a name (“Box sorting machine” in this instance), and click on “Create”. During every cycle FC losses its contens while the FB gets its memory to its associated blockFC is commonly used in arithmetic calculation and etc Posts: 113. Oct 27, 2012 · Hello, Couple of quick questions regarding use of data blocks when programming Siemens PLCs with TIA Portal in LAD/FBD: 1) When I was taught to program Siemens PLC's, I was told to avoid using memory bits and only use data blocks with no explanation. I have a PLC running on a machine that I hardly don't want to stop. Like this for other dta types such as real, double word and date & time etc how we can give addr Oct 7, 2022 · Pointers are a handy method to manage vast data sets where symbolic data allocation isn't possible. Does it make sense to use a data block wrapper? Thanks in advance! Jack. It uses less memory space. In this video creation of Data block has been shown. In the declaration, the data elements are assigned only a symbolic name and no fixed addre The configuration of the function blocks is performed in the TIA Portal as of V12 SP1. Rating: (2412) You can right-click on the DB, select "Generate source from block", or "Copy as text" to generate a text-based document that allows portal to recreate the DB with the same tags and configuration as the one you copied. It would be great if anyone can suggest a good practice to limit the number of data blocks. We have V12 of TIA. Basic steps. 2- Các BLock: organization blocks (OBs), function blocks (FBs), functions (FCs) or data blocks (DBs). DB “Master_Modbus_DB”) • the DB “Comm_Data” – with the “Param” structure Jun 1, 2021 · "If you want to download the changes in global data blocks or function blocks with changed interfaces into the CPU without overwriting the current values, in the TIA Portal you must enable the memory reserve in the "Settings" for that block. Hide → should be hided “/ showed by the “v” / “^” buttons •Can be used on all S7 data areas •Wizard is available for setup in TIA Disadvantages •No security •Blocked by default on the S7-1200 and S7-1500 •Data blocks have to be unoptimised •Only small amounts of data can be transferred <160bytes •No acknowledgement of transfer this needs to be engineered if needed Sep 23, 2022 · TIA Portal has a tool called Snapshots, where by the values of a Data block are stored in an intermediate location within the block: Button that starts the Snapshot procedure. Global data blocks store data that can be used by all other blocks. Arrays are one Oct 12, 2021 · Now open a 2nd TIA Portal project (leaving the original project open), add a PLC of the same type as in the original project. The user program of the master and the slaves is located in the S7-1500 CPU. docx 3 Requisiti hardware e software 1 Engineering Station: i requisiti sono hardware e sistema operativo (per ulteriori informazioni vedere il file Readme/Leggimi sul DVD di installazione di TIA Portal) 2 Software SIMATIC STEP 7 Professional in TIA Portal – da V13 In this video, we’re going to show you a quick introduction to Data Blocks in Siemens TIA Portal and the benefit of using Data Blocks when collecting groups of data in the PLC. Ở chế độ mặc định, địa chỉ tuyệt đối của Data block PLC S7 1200 sẽ ở dạng tags, không hiển thị địa chỉ tuyệt đối (Absolute operands) Jun 25, 2020 · Learn about working with Global Data blocks online with Simatic STEP 7 in TIA Portal. To set communication between two Siemens PLCs, we need to create and configure a Profinet network Aug 6, 2007 · Posts: 54. 0, 11/2017 7 G 7 e d 1. Nov 27, 2018 · Data blocks are used to store program data. The function block instance-specific data might be stored in its instance data block or the calling block's instance data block. A data block that contains Function Block Instance Data. Each communication block can be used for an axis of a SINAMICS S120 multi-axis or a SINAMICS S110, Sinamics V90 or G120x converter system. Is it possible to reference a data block by its ID number based on a index? في هذا الدرس سوف نتعرف على:مثال تطبيقي عن Function Bock و Data Block ملف التحميل للبرمامج:https://www. Oct 9, 2022 · Data blocks with optimized access have no fixed defined structure. Last visit: 2/28/2022. Rating: (20) Greetings, is there a difference between Global DB and Instance DB(in particular static area) in terms of data handling? Guideline for library handling in TIA Portal Entry ID: 109747503, V1. Last visit: 3/15/2023. choose SCL as the block language, then program as shown above. The Variant data type is a special data type that accepts almost anything. Last visit: 9/3/2024. Posts: 15139. Oct 27, 2022 · Both of these PLCs are running TIA Portal V17 – Firmware V2. they were not included in your delivery package. Jan 18, 2012 · In TIA Portal, s7-1200/1500 logic when written the way Siemens designed the hardware and software intended rarely requires the offset to be visible (using non-optimized datablock configurations). Jun 25, 2020 · Learn about creating Global Data blocks (DB) with Simatic STEP 7 in TIA Portal. Creating a PLC data type for a lubricating plant depot, for example. Last visit: 8/30/2024. Last visit: 9/4/2024. . In this tutorial, we will be looking at the different types of function block instances that can be used in PLC programming using Siemens TIA Portal. ?. Last visit: 8/5/2024. Posts: 278. The maximum size of data blocks varies depending on the CPU. All that needs to be filled in is the function block name, the data block name, and the datablock number. Ahora, para terminar de crear tu bloque de datos , debes seleccionar « DB «, asignarle un nombre (el que gustes) y darle a Aceptar (el tipo, déjalo como Bloque de datos Global ) Jul 13, 2021 · Currently I am using the MOVE function to individually move one tag at a time to the data block. Is there a way to have a list of all block addresses in use and then Nov 9, 2021 · Joined: 7/7/2010. DB1 InstPutGet Instance data block of FB1 "PutGet". For communications blocks, it's usually necessary. Select the "Delete from device" check box. Creating a new project in TIA Portal. The blocks were created by the user, i. If any module was different, it would need its own instance data block SCE_PT_032-600 Global Data Blocks_S7-1500_R1703. Data move operations also has been shown using MOVE and MOVE BLOCK instructions. I figured out that you can take snapshots, but for that you have to go online in each different datablock, take a snapshot, go back offline, copy paste the snapshot values to the start values, compile and download again. Posts: 3943. It's a method of grouping variables of the same data type in a long list, and accessing each internal element via an index. Organization blocks (OBs): Vòng quét chương trình chính- Program Cycle: thực thi vòng quét chính chương trình bạn viết. No additional hardware or software is required. FC200 FC_RECV The FC200 "FC_RECV" function calls the TRCV_C instruction internally to receive data through an ISO-on-TCP connection. Apr 6, 2020 · Khi Add các Block để lập trình là lúc bạn chọn lun loại ngôn ngữ coding. A FIFO, or First In, First Out, is a great way of managing an array of values. In addition, you will be introduced to library-compatible function und function block programming. The standard block access uses Big-Endian while optimized access uses Little-Endian. Hi, I have doubt on how to give addressing for data blocks, like for byte we will give db1. To write data from TIA to the Modbus server simply change the MB_MODE parameter to 1 on the MB_CLIENT block. They're composed of constructs that show where the data starts and its length. " When is this memory reserve reset/clear?. Click "Yes". Posts: 1343. Project library – Integrated in the project and managed using the project – Allows the reusability within the project 2. In the TIA project I've just added one DB with non-optimized access (don't know if it does any difference but I need this option because this DB is used for data exchange with another PLC) and a small piece of code where I rewrite some values into 2 variables from this new DB. Whilst you are in the SCL block, go to Basic Instructions on the right of the screen, then Move Operations, (depending on your TIA version you might need to go in to Read/Write Memory), then find POKE_BLK near the bottom of the list, hover over it for a few seconds and a link to the Help May 19, 2014 · Hi, I am trying to address my data blocks manually and for this i always have to keep the last block address used, which is definitely confusing if working in a team. The problem is that i want to transfer the data block with the array of word from the second word and after. _____Nesta aula veremos sobre as data blocks no TIA Portal!_____C Jul 13, 2019 · With more recent firmware and TIA portal versions (I do not recall how "new" this feature is), you can use File I/O. Static: The value of the static variables are persist even after the block is called, therefore only FB has it and the instance DB is used to persist the value. Legal information Programming Guideline for S7-1200/1500 Entry ID: 81318674, V1. Last visit: 5/20/2024. You can define its content and structure, and you are able to read and write from/to it. The configuration and parameter settings for the drives is realized as follows 1. dbb0 and for bit we will give db1. We will be using TIA Portal v17, but you can use any other version. Posts: 487. Apr 24, 2013 · Joined: 4/24/2013. Rating: (2413) For projects where someone is relatively new to PLC programming, mapping the IO is not very useful in TIA Portal where symbolic tags can be "rewired" if a physical IO point is physically changed to another IO address. For telegram data from external devices, it is sometimes helpful to use non-optimized DBs. Oct 1, 2016 · Open the block; Select the parameter line; Inspection Windows → Properties → Attributes → Visibility in block call in LAD/FBD → three possibilities: Show → looks like a “traditional” parameter, that means, it is always visible. What does that mean and which ad-/disadvantages does it bring?Here are the answers!If this video hel "دليل كامل لتعلم PLC: مقدمة لبرمجة واجهة PLC باستخدام TIA Portal""تعلم البرمجة باستخدام TIA Portal: البداية من الصفر إلى May 23, 2013 · It's that functionality that I want in TIA portal, or to say different, that I don't know how to do in TIA portal. The STEP 7 development environment (TIA Portal) provides "Data log" data recording for the SIMATIC S7-1200/S7-1500. Sep 30, 2016 · The optimized block access rearranges the data inside the block. in this video we see how to export data blocks tags in tia portal v16 and how to import data block in hmi wientekwhatsapp +923476670660#tiaportal #v16 #fory Mar 15, 2013 · If some change was done that leaves to reinitialize a DB, by downloading a message will be showed:”The data block will be re-initialized with their start values”. Rating: (0) Hi everyone, I'm starting to program TIA Portal I'm using a 1214c CPU S7 1200 and I would like to know how i can see DB or varibles unused and how i can delete it. Essentially we’re using PLC_1 to increase a counter variable in PLC_2. TIA Portal Module 031-300 IEC Timers and IEC Counters – One instance data block for several instances of one or more function blocks. z = the start adres of your souce block, BYTE 20 states the length in bytes Feb 4, 2022 · Joined: 6/19/2017. What are the advantages of using data • PUT for sending data • GET for receiving data In STEP 7 V16 (TIA Portal) you will find the above-mentioned instructions in the "Instructions" task card under "Communication > S7 Communication". Rating: (141) Setpoint values are the values that will probably have to be fine tuned during commissioning. Therefore it is typically used to pass a complete DB or a structure into a block. Oct 23, 2022 · Example of FIFO Function Block. Mar 4, 2021 · Hi, I have a similar doubt. In the declaration, the data elements are assigned only a symbolic name and no fixed address within the block. DB5 RecvData The received data is stored in the DB5 data block. Here you will find some information on types of data blocks, access types, structure of data block, fun Mar 14, 2017 · InOut: It is a kind of pointer, you pass data through the InOut pin to the block without really copying it. With the FBD language, engineers can build control logic by selecting and connecting function blocks, creating a cohesive and efficient control sequence. Please Subscribe to Easy PLC Training Sessions for more Videos and Trainings Aug 3, 2023 · Joined: 11/5/2012. 0, 05/2017 5 G 7 d 1 SIMATIC’s Technology Objects 1. Tags of a global data block: You can define retentivity either for individual or for all tags of a global data block depending on the settings for access. !!! The data block can be saved and downloaded into the PLC . Rating: (6) Thanks but when i try to open a new project when another is already open the program ask me to close the open one. For example, if I wanted to access Element 17 from the Array_1 in the above image, I would use Array_1[17]. Rating: (0) thats right FC does not have memory block while FB requires instance Data Block for exercution. Rating: (22) Create a new FC. Writing data from the PLC to Modbus slave. Apr 6, 2011 · Check your "standard library, system function blocks" after you opened an FC then in STL: CALL SFC20 SRCBLK := P#DBxx. Join our Siemens TIA Portal Programming eLearning Course, Today! Want to learn more about Siemens PLCs and TIA Portal? Click here and access 30+ Siemens TIA Portal To follow along with this tutorial, you will need an installation of TIA Portal. • As a template for creating global data blocks with the same data structure. Rating: (0) Hello, I'm looking for some help. Drag that FC from original TIA Portal project to the new one. All tags that you then declare are put in the memory reserve. This type of data block will exist in the Project Tree, as a “Top Level” object. You also have the option of Apr 16, 2016 · Split from as offset activate TIA PORTAL V12, can someone help me set up . The mode switch on the PLC must be on STOP! ( Name Type Initial value Comment ) C sav Note: If the data block is assigned as a local instance DB to a FB, the declarations table of the FB declares the structure of the DB. The "Delete" dialog opens. Oct 11, 2022 · Single Instance Data. 8 (Simulated) The application in the example is as follows: PLC_1 Gets data from PLC_2; PLC_1 updates the data; PLC_1 Puts data into PLC_2; The above cycle repeats, incrementing a counter. Rating: (584) Hi, are these datas in an optimized or non optimized block? Also check these FAQs: How do you copy memory areas and structured data in STEP 7 (TIA Portal)? In previous articles we discussed different types of Blocks in SIEMENS TIA Portal, we talked about function blocks FBs, functions FCs, and data blocks DBs. Can anybody can tell me if there is an option for this? Jul 17, 2013 · To delete a block that exists online, follow these steps: In the "Program blocks" folder in the project tree, right-click on the block that you wish to delete from the device. g. Configuring the Profinet network in TIA Portal. Posts: 8175. Oct 28, 2019 · Why are there three different types of FB instances?Find out here!If this video helped you, please consider helping me by joining my "GoFundMe" and donating Feb 19, 2013 · Joined: 1/22/2013. Have a look again in the TIA-manual: Basic principles for programming of data blocks. Does it still crash? Apr 21, 2021 · This Pump will be Data Block “Well_Pump_1” and I will also create a “Well_Pump_2” data block instance. 1. Perform the following steps if you want to extend the interface of a function or data block and then load the block without reinitialization. Suggestion; To thank ; Quote blocks (OBs),functions (FCs), function blocks (FBs) and data blocks (DBs). 13, and 67. Apologies in advance if my request is unclear. This is STILL an issue some times. Posts: 9. You could use that to store data and retrieve data for long term storage. Rating: (1) I am using a S7-1500 PC & TIA V15. e. Apr 15, 2021 · Hello I have a s7-1200 and i want to move a data block that has an array[0-101] of words to a data block that has an array[0-50] of real. 1 Motivation TOs of S7-1500(T) Entry ID: 109743134, V1. Save again. You should avoid using MOVE to access pointer data, instead, use BLKMOV. DBXp. Data blocks thus contain variable data that is used by the user program. Last visit: 8/10/2024. PLC data types can be used for the following: • As data types for variables in the variable declaration of code modules or in data modules. They are blocks with "optimized access". Posts: 6. Changing the attributes of the function block "Parameter passing via registers" instead of "Optimized block access" has no effect If I create a new program in TIA portal with an S7-300 PLC, then I can use the OPN data block instruction. The module explains the structure and creation of and access to global data blocks for the SIMATIC S7-1200. Restart behavior Sep 21, 2018 · Posts: 15. Programming the Modbus master by means of the FB “Master_Modbus” and • an instance data block (e. ⚡Initial Setup Hi,I am hoping for some guidance/Direction. Once the Snapshot button has been pressed, TIA Portal saves the current value into the Snapshot column: Snapshot taken and stored Feb 16, 2015 · Joined: 5/28/2008. hope this helps, regards, FCK WAR! Be nice! Suggestion; To thank ; Quote; Answer Oct 1, 2022 · Example Of A Single Block Accepting 2 Different Data Type Inputs Using Variants. In this tutorial, you will learn how to harness the power of FBD Nov 26, 2011 · Posts: 50. Similar to the ANY data type, TIA Portal essentially creates a pointer to the data and passes that, but with a few extra elements: Mar 11, 2016 · Joined: 7/9/2015. By loading new data at the front and shuffling all current data up by 1 element, data “Flows” through the array until the most recently added falls off the end. You can create several data blocks based on this type, all of which have the same data structure. This means that none of its data resides within another data block, however some other Function block instance data may exist with its own data Sep 18, 2013 · Retentivity settings can be defined only in the assigned instance data block if optimized block access has not been activated for the FB. Rating: (584) Hi, your question is very general and so you get this FAQ about DB in TIA: What differences should you watch out for between optimized data storage and the standard type of block access in STEP 7 (TIA Portal)? When generating data blocks, you can designate PLC data types as a type. There are instructions (F1-help for File Reading and Writing) that allow data to be stored on the memory card as a csv file (as an example). In the new project it should have OB1 and that FC. Jan 29, 2023 · The BLKMOV and AT constructors can be used to manage moving data from one data type to another. omment for documentation ( optional ). Rating: (171) Closed cause question posted twice. This way, the data is ready for the processor, that doesn't need to resort it. be/Mpwa4AVvxVoVideo tutorial about how to work with properties of data blo This video is about data blocks, used in TIA Portal. TIA Portal can automatically create a pointer when trying to access complex data like arrays. Last visit: 7/15/2024. Nov 14, 2014 · Posts: 21. I am currently looking at means/methods of sending a Data block from each (4x) S7-1500 station to a single S7-1500 over PN. Last visit: 8/14/2024. From there I can use the serialize and de-serialize commands to copy data block data to other data blocks which is great for moving large groups of data but I don't think it works for groups of tags unless I am missing something. The second thread with the subject Exporting data block from an EXCEL to TIA portal via Openness is published within the conference STEP 7 (TIA Portal). z BYTE 20 RET_VAL := MWzz DSTBLK := P#DBoo. Mar 7, 2023 · Check Out the First of Our Siemens TIA Portal and S7-1200 Tutorials: Intro to Siemens S7-1200 PLC and TIA Portal Programming . Data Blocks are getting more and more important and easy to use but on the other side complex, powerful and frightening! But actually they are quite simply, see for In this video, we're going to show you a quick introduction to Data Blocks in Siemens TIA Portal and the benefit of using Data Blocks when collecting groups of data in the PLC. dbw0. In this article we will take about another type of block in SIEMENS PLCs, these are the organization blocks , and in this article, we will discuss the most important organization block of The structure of a PLC data type consists of several elements of different data types. Here's the answer. 2 Libraries and library elements in TIA Portal Figure 1-2: Libraries in TIA Portal 1 2 4 3 1. 6, 12/2018 2 G 8 d Legal information Use of application examples Apr 4, 2012 · STEP 7 - TIA Portal v11: The red highlighted area in image "02_STEP 7 - TIA Portal v11 - 02" has the addresses.
dkuloks
svpbnak
hxwjy
avvbd
fjxj
rli
zwfh
dix
pddvg
luajidgf